【问题标题】:Qt closing tray icon after application stops应用程序停止后Qt关闭托盘图标
【发布时间】:2011-03-27 12:26:25
【问题描述】:

Windows 下的托盘图标有点问题。在我的 Qt 应用程序停止(正常退出)后,图标仍保留在系统栏中。只有当我将鼠标光标移到它上面时它才会消失。我试图将它隐藏在我的窗口的析构函数中,但它失败了:我试过.setVisible(false)

有什么想法吗?谢谢。

附:我记得我在使用 SWT/Java 时遇到过同样的问题。

【问题讨论】:

  • 你为什么要调用setVisible(false) 而不是仅仅销毁小部件?
  • 如何退出应用程序?
  • @David:我使用了 setVisible(false) 因为这个函数会导致托盘图标消失。 AFAIK qt 无论如何都会破坏小部件。我试图用删除操作符销毁 traicon。
  • @atamanroman:正常退出。我按下窗口标题中的 [x] 按钮。

标签: c++ windows qt qt4 trayicon


【解决方案1】:

我不会将它隐藏在析构函数中。那时它可能是一个无效的参考。我会把它放在你的“退出”事件发生的地方。

【讨论】:

  • 好主意 :) 我重新实现 closeEvent 成员函数并调用 setVisible(false) 在退出前隐藏图标。
【解决方案2】:

如果您无法从析构函数中调用它,您可以将QCoreApplication::aboutToQuit() 信号连接到QSystemTrayIcon::hide() 插槽。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多