【问题标题】:System tray icon working in debug but not release mode, in Qt在 Qt 中,系统托盘图标在调试而不是发布模式下工作
【发布时间】: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


【解决方案1】:

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

  1. 删除构建目录中的“发布”和“调试”文件夹,
  2. 使用 Qt creator 中“build”菜单中的“clean all”操作,
  3. 切换到发布模式,然后使用“Run qmake”、“rebuild all”操作,
  4. 按 Ctrl+R 并检查所需的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多