应用程序停止后Qt关闭托盘图标
Posted
技术标签:
【中文标题】应用程序停止后Qt关闭托盘图标【英文标题】:Qt closing tray icon after application stops 【发布时间】:2011-03-27 12:26:25 【问题描述】:Windows 下的托盘图标有点问题。在我的 Qt 应用程序停止(正常退出)后,图标仍保留在系统栏中。只有当我将鼠标光标移到它上面时它才会消失。我试图将它隐藏在我的窗口的析构函数中,但它失败了:我试过.setVisible(false)
。
有什么想法吗?谢谢。
附:我记得我在使用 SWT/Java 时遇到过同样的问题。
【问题讨论】:
你为什么要调用setVisible(false)
而不是仅仅销毁小部件?
如何退出应用程序?
@David:我使用了 setVisible(false) 因为这个函数会导致托盘图标消失。 AFAIK qt 无论如何都会破坏小部件。我试图用删除操作符销毁 traicon。
@atamanroman:正常退出。我按下窗口标题中的 [x] 按钮。
【参考方案1】:
我不会将它隐藏在析构函数中。那时它可能是一个无效的参考。我会把它放在你的“退出”事件发生的地方。
【讨论】:
好主意 :) 我重新实现 closeEvent 成员函数并调用 setVisible(false) 在退出前隐藏图标。【参考方案2】:如果您无法从析构函数中调用它,您可以将QCoreApplication::aboutToQuit()
信号连接到QSystemTrayIcon::hide()
插槽。
【讨论】:
以上是关于应用程序停止后Qt关闭托盘图标的主要内容,如果未能解决你的问题,请参考以下文章