开发者

System tray icon working in debug but not release mode, in Qt

I have a Qt application with a system tray icon and a menu that shows up when right-clicking the icon. For some reason, the menu items work fine in debug mode but not in release mode.

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

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

QSystemTrayIcon* trayIcon = 开发者_Python百科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");
}

When I right-click on the icon, the menu shows up but clicking on "Close" does nothing - trayIconCloseAction_triggered() is not called at all. It does this only in release mode. Does anybody know what could be the reason?

I am using Windows 7 and Qt Creator, building with an MSV-2010 static build of Qt.

Edit: The icon does not react to click events ("activated" signals) either. Again in debug mode it works, but not release.


In situations like this there is a general recommendation:

  1. Erase "release" and "debug" folders in your build directory,
  2. Use "clean all" action from "build" menu in Qt creator,
  3. Switch to release mode and then use "Run qmake", "rebuild all" actions,
  4. Press Ctrl+R and check needed functionality.
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜