【发布时间】:2011-03-07 03:22:39
【问题描述】:
我有一个 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. 清除构建目录中的“release”和“debug”文件夹,2. 使用 Qt creator 中“build”菜单中的“clean all”操作,3. 切换释放模式,然后使用“重建所有”动作,4.按Ctrl+R并检查所需的功能
-
添加:3.在“rebuild all”之前也使用“Run qmake”动作
-
是的,非常感谢!随意添加您的 cmets 作为答案,我会将其标记为已接受。
标签: qt qt-creator system-tray