c – 在后台运行程序,将其放入系统托盘中

我正在使用Qt,我希望我的程序能够进入系统托盘,但也可以显示为窗口.

例如:我启动我的程序,它打开一个窗口,…,我关闭窗口但程序没有关闭,它仍然在后台.然后我可以通过系统托盘中创建的图标重新打开窗口.

我知道如何使用QSystemTrayIcon创建图标,并在右键单击图标时创建菜单,并通过菜单启动事件.但是我不知道如何这样做,当我关闭我的程序窗口时,程序仍然在后台打开.

为了说明我的观点,它将与Steam相同.

最佳答案 您需要重新实现QWidget :: closeEvent,隐藏窗口并忽略QCloseEvent.

这在Qt System Tray Icon Example中有详细解释,这是最有趣的部分:

void Window::closeEvent(QCloseEvent *event)
{
    if (trayIcon->isVisible()) {
        hide();
        event->ignore();
    }
}
点赞