Qt托盘消息通知(②托盘消息通知)
实现思路
- 准备消息内容:我们需要定义通知的标题和内容。
- 调用
showMessage
方法:使用showMessage
方法在托盘区域显示通知。 - 设置通知图标:可以选择不同的图标来表示不同类型的消息(信息、警告、错误等)。
完整代码示例
在之前的托盘图标工程基础上,我们将添加消息通知的功能。
main.cpp
#include <QApplication> #include <QSystemTrayIcon> #include <QMenu> #include <QAction> #include <QMessageBox> #include <QTimer> 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); // 定时器用于模拟消息通知 QTimer *timer = new QTimer(this); connect(timer, &QTimer::timeout, this, &TrayApp::showNotification); timer->start(5000); // 每5秒显示一次通知 } private slots: void iconActivated(QSystemTrayIcon::ActivationReason reason) { if (reason == QSystemTrayIcon::Trigger) { QMessageBox::information(nullptr, "托盘图标", "托盘图标被点击了!"); } } void showNotification() { trayIcon->showMessage("新消息", "您有一条新消息!", QSystemTrayIcon::Information, 3000); } private: QSystemTrayIcon *trayIcon; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); app.setQuitOnLastWindowClosed(false); // 最后一个窗口关闭时不退出 TrayApp trayApp; // 创建托盘应用的实例 return app.exec(); }
代码说明
-
显示通知:在
showNotification
槽函数中,调用trayIcon->showMessage
来显示通知。参数包括:- 标题 ("新消息")
- 内容 ("您有一条新消息!")
- 图标类型(
QSystemTrayIcon::Information
) - 持续时间(3000 毫秒)
-
定时器:使用
QTimer
定时器模拟定期发送消息。在每个时间间隔(这里设置为 5 秒)调用showNotification
方法。 -
托盘图标的点击事件:保留了之前的功能,当用户点击托盘图标时,会弹出信息框。
运行程序
编译并运行程序后,您将在每 5 秒看到右下角弹出一个消息通知。您可以根据需要调整通知的标题和内容。
进一步扩展
您可以根据具体需求进一步扩展应用,例如:
- 添加不同类型的消息(如警告、错误等)。
- 根据实际的事件触发通知,而不是定时器。
- 自定义通知的持续时间和样式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】