要写一个可以隐藏到托盘的Qt
界面程序可以分三步:
-
在
mainwindow.cpp
中添加头文件:#include <QSystemTrayIcon>
-
挑选一个顺眼的
icon
,添加到qrc
中,比如笔者选择了:/icon/办公软件.png
; -
把以下代码粘贴到
mainwindow.cpp
的构造函数中,把icon
换成自己的,大功告成~// 设置当窗口关闭时不退出程序 QApplication::setQuitOnLastWindowClosed(false); // 定义托盘图标,并设置父控件为mainwindow QSystemTrayIcon *icon = new QSystemTrayIcon(this); // 挑一个顺眼的icon,路径从qrc中复制即可 icon->setIcon(QIcon(":/icon/办公软件.png")); // 添加右键菜单 QMenu *menu = new QMenu; QAction *normal, *min, *max, *quit; normal = new QAction("显示主界面"); connect(normal, &QAction::triggered, [&](){ showNormal(); }); min = new QAction("最小化"); connect(min, &QAction::triggered, [&](){ showMinimized(); }); max = new QAction("最大化"); connect(max, &QAction::triggered, [&](){ showMaximized(); }); quit = new QAction("退出"); connect(quit, &QAction::triggered, [&](){ QCoreApplication::quit(); }); menu->addAction(normal); menu->addAction(min); menu->addAction(max); menu->addSeparator(); menu->addAction(quit); icon->setContextMenu(menu); // 设置单击显示主界面 connect(icon, &QSystemTrayIcon::activated, [=](QSystemTrayIcon::ActivationReason r){ if(r == QSystemTrayIcon::ActivationReason::Trigger) emit normal->triggered(); }); // 显示托盘图标 icon->show();