给qt程序添加任务栏托盘
参考文档
引入头文件
cpp
#include <QSystemTrayIcon>
判断系统托盘是否支持,支持则进行设置
cpp
// 判断是否支持系统托盘图标
if(QSystemTrayIcon::isSystemTrayAvailable()){
// 设置当窗口关闭时不退出程序
QApplication::setQuitOnLastWindowClosed(false);
// 定义托盘图标,并设置父控件为mainwindow
QSystemTrayIcon *icon = new QSystemTrayIcon(this);
// 挑一个顺眼的icon,路径从qrc中复制即可
icon->setIcon(QIcon(":/img/systemTrayIcon.webp"));
// 添加右键菜单
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();
}