我在Windows下托盘图标有点问题。在我的Qt应用程序停止(正常退出)后,该图标仍然保留在系统栏中。只有当我将鼠标光标移到它上面时,它才会消失。我试图将其隐藏在我窗口的析构函数中,但它失败了:我尝试了.setVisible(false)
。Qt应用程序停止后关闭托盘图标
任何想法?谢谢。
P.S.我记得我和SWT/Java有同样的问题。
我在Windows下托盘图标有点问题。在我的Qt应用程序停止(正常退出)后,该图标仍然保留在系统栏中。只有当我将鼠标光标移到它上面时,它才会消失。我试图将其隐藏在我窗口的析构函数中,但它失败了:我尝试了.setVisible(false)
。Qt应用程序停止后关闭托盘图标
任何想法?谢谢。
P.S.我记得我和SWT/Java有同样的问题。
我不会将它隐藏在析构函数中。在这一点上它可能是一个无效的参考。我会把它放在你的“退出”事件发生的地方。
好主意:)我重新实现了closeEvent成员函数,并在退出前调用setVisible(false)来隐藏图标。 – Seba 2011-03-27 22:04:03
如果您无法从析构函数调用它,则可以将QCoreApplication::aboutToQuit()
信号连接到QSystemTrayIcon::hide()
插槽。
你为什么要调用'setVisible(false)'而不是只是销毁小部件? – 2011-03-27 13:34:26
你如何退出你的应用程序? – atamanroman 2011-03-27 16:01:43
@David:我用setVisible(false),因为这个函数使托盘图标消失。 AFAIK qt无论如何都会摧毁小部件。我试图用删除操作符销毁traicon。 – Seba 2011-03-27 16:24:53