如果应用程序繁忙,则不显示QSystemTrayIcon弹出菜单

时间:2012-05-16 15:22:00

标签: qt

我使用QSystemTrayIcon类来显示TrayIconMenu,并且在点击TrayIconMenu时将显示弹出菜单。

如果应用程序正忙于处理其他任务,则单击TrayIcon,弹出菜单未显示,但菜单边框可见一段时间。相同的代码适用于Mac。

以下方法我试图显示菜单:

    QMenu *myMenu();
    QSystemTrayIcon myTrayIcon;
    myTrayIcon.mytMenu()->show();

2 个答案:

答案 0 :(得分:1)

有很多方法可以解决这个问题。本文可能对您有用:Keeping the GUI Responsive

答案 1 :(得分:0)

可能问题在于一些广泛的计算块或大而缓慢的循环。如果您知道这个瓶颈在哪里,您可以让事件循环来处理排队事件,只需插入

即可
QApplication::processEvents();

在计算循环内的某个点。

此外,尝试将大而昂贵的任务分成小而快的任务,你可以让事件循环来处理两者之间的事件。