Qt托盘消息通知(②托盘消息通知)

实现思路

  1. 准备消息内容:我们需要定义通知的标题和内容。
  2. 调用 showMessage 方法:使用 showMessage 方法在托盘区域显示通知。
  3. 设置通知图标:可以选择不同的图标来表示不同类型的消息(信息、警告、错误等)。

完整代码示例

在之前的托盘图标工程基础上,我们将添加消息通知的功能。

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();
}

 

代码说明

  1. 显示通知:在 showNotification 槽函数中,调用 trayIcon->showMessage 来显示通知。参数包括:

    • 标题 ("新消息")
    • 内容 ("您有一条新消息!")
    • 图标类型(QSystemTrayIcon::Information
    • 持续时间(3000 毫秒)
  2. 定时器:使用 QTimer 定时器模拟定期发送消息。在每个时间间隔(这里设置为 5 秒)调用 showNotification 方法。

  3. 托盘图标的点击事件:保留了之前的功能,当用户点击托盘图标时,会弹出信息框。

运行程序

编译并运行程序后,您将在每 5 秒看到右下角弹出一个消息通知。您可以根据需要调整通知的标题和内容。

进一步扩展

您可以根据具体需求进一步扩展应用,例如:

  • 添加不同类型的消息(如警告、错误等)。
  • 根据实际的事件触发通知,而不是定时器。
  • 自定义通知的持续时间和样式。
posted @   王廷胡_白嫖帝  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示