我一直在研究处理视频处理的Qt C ++应用程序。通常,这需要很长时间,因此用户将启动该过程并最小化等待窗口。

现在,我遇到了一个问题,即该过程完成后无法提醒用户。我可以在前台的应用程序中显示QMessageBox。但是,没有消息可以在用户最小化应用程序并处理其他内容时主动通知用户。

该通知不必是弹出窗口。它甚至可能在任务栏中闪烁。任何建议,将不胜感激。

提前致谢!

编辑:

我感谢每个人的快速详细的回应。 QMessageBox和QSystemTrayIcon是两种可能的解决方案。我确实通过以下代码部分解决了我的问题:

HWND hHandle = FindWindow(NULL,L"nameOfYourApplication");
FLASHWINFO pf;
pf.cbSize = sizeof(FLASHWINFO);
pf.hwnd = hHandle;
pf.dwFlags = FLASHW_TIMER|FLASHW_TRAY; // (or FLASHW_ALL to flash and if it is not minimized)
pf.uCount = 8;
pf.dwTimeout = 75;
FlashWindowEx(&pf);


这将刷新任务栏。再次非常感谢参与此活动的每个人!

最佳答案

您可以使用QSystemTrayIcon从任务栏托盘显示messagex。

使用方法QSystemTrayIcon::showMessage触发通知。

使用QSystemTrayIcon::setVisible(bool visible)可以显示/隐藏托盘中的图标。

使用QSystemTrayIcon::setIcon设置所需的图标。

关于c++ - 当应用程序在后台运行时,如何弹出QMessageBox?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26062810/

10-11 04:29