在Qt中,系统托盘图标在调试但不是释放模式下工作

时间:2011-03-07 03:22:40

标签: qt qt-creator system-tray

我有一个带有系统托盘图标的Qt应用程序和右键单击图标时显示的菜单。出于某种原因,菜单项在调试模式下工作正常,但在发布模式下不能正常工作。

QAction* closeAction = new QAction("Close", this);

QMenu* trayIconMenu = new QMenu(this);
trayIconMenu->addAction(closeAction);

QSystemTrayIcon* trayIcon = new QSystemTrayIcon(this);
trayIcon->setContextMenu(trayIconMenu);
QIcon trayIconIcon("Application.png");
trayIcon->setIcon(trayIconIcon);
trayIcon->show();

QObject::connect(closeAction, SIGNAL(triggered()), this, SLOT(trayIconCloseAction_triggered()));


void MainWindow::trayIconCloseAction_triggered() {
  MessageBoxes::info("Close item clicked");
}

当我右键单击该图标时,菜单显示但单击“关闭”不执行任何操作 - 根本不会调用trayIconCloseAction_triggered()。它仅在发布模式下执行此操作。有谁知道可能是什么原因?

我正在使用Windows 7和Qt Creator,使用Qt的MSV-2010静态版本构建。

编辑:图标也不会对点击事件(“激活”信号)做出反应。再次在调试模式下它可以工作,但不能释放。

1 个答案:

答案 0 :(得分:1)

在这种情况下,有一般性建议:

  1. 删除构建目录中的“release”和“debug”文件夹,
  2. 在Qt创建者的“构建”菜单中使用“全部清除”操作,
  3. 切换到发布模式,然后使用“运行qmake”,“重建所有”操作,
  4. 按Ctrl + R并检查所需的功能。