我使用QSystemTrayIcon类来显示TrayIconMenu,并且在点击TrayIconMenu时将显示弹出菜单。
如果应用程序正忙于处理其他任务,则单击TrayIcon,弹出菜单未显示,但菜单边框可见一段时间。相同的代码适用于Mac。
以下方法我试图显示菜单:
QMenu *myMenu();
QSystemTrayIcon myTrayIcon;
myTrayIcon.mytMenu()->show();
答案 0 :(得分:1)
有很多方法可以解决这个问题。本文可能对您有用:Keeping the GUI Responsive
答案 1 :(得分:0)
可能问题在于一些广泛的计算块或大而缓慢的循环。如果您知道这个瓶颈在哪里,您可以让事件循环来处理排队事件,只需插入
即可QApplication::processEvents();
在计算循环内的某个点。
此外,尝试将大而昂贵的任务分成小而快的任务,你可以让事件循环来处理两者之间的事件。