Qt托盘消息通知(①托盘图标)
创建托盘图标工程的思路步骤
- 创建Qt项目:首先,您需要创建一个新的Qt Widgets应用程序项目。
- 添加必要的Qt模块:在项目文件(.pro)中添加对
QtWidgets和QtGui模块的支持。 - 创建主窗口类:我们将创建一个主窗口类来处理托盘图标的创建和管理。
- 设置托盘图标:使用
QSystemTrayIcon创建托盘图标,并设置图标、提示文本和上下文菜单。 - 显示托盘图标:在应用启动时显示托盘图标,并确保应用在最小化时不关闭。
- 响应鼠标事件:处理鼠标点击托盘图标的事件,例如显示上下文菜单或弹出提示。
完整代码示例
1. 创建 Qt 项目
使用 Qt Creator 创建一个新的 Qt Widgets 项目,命名为 TrayIconApp。
2. 修改项目文件
在 TrayIconApp.pro 文件中添加必要的模块:
QT += core gui widgets
3. 创建主窗口类
在 main.cpp 和新的头文件和源文件中添加以下代码:
main.cpp
#include <QApplication>
#include <QSystemTrayIcon>
#include <QMenu>
#include <QAction>
#include <QMessageBox>
class TrayApp : public QObject {
public:
TrayApp() {
// 创建托盘图标
trayIcon = new QSystemTrayIcon();
trayIcon->setIcon(QIcon(":/Image/QQ图标.png")); // 替换为您的图标路径
trayIcon->setToolTip("托盘图标示例");
// 创建菜单
QMenu *menu = new QMenu();
QAction *exitAction = menu->addAction("退出");
connect(exitAction, &QAction::triggered, qApp, &QApplication::quit);
trayIcon->setContextMenu(menu);
trayIcon->show();
// 连接托盘图标的点击事件
connect(trayIcon, &QSystemTrayIcon::activated, this, &TrayApp::iconActivated);
}
private slots:
void iconActivated(QSystemTrayIcon::ActivationReason reason) {
if (reason == QSystemTrayIcon::Trigger) {
QMessageBox::information(nullptr, "托盘图标", "托盘图标被点击了!");
}
}
private:
QSystemTrayIcon *trayIcon;
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
app.setQuitOnLastWindowClosed(false); // 最后一个窗口关闭时不退出
TrayApp trayApp; // 创建托盘应用的实例
return app.exec();
}

浙公网安备 33010602011771号