Qt托盘消息通知(①托盘图标)

创建托盘图标工程的思路步骤

  1. 创建Qt项目:首先,您需要创建一个新的Qt Widgets应用程序项目。
  2. 添加必要的Qt模块:在项目文件(.pro)中添加对 QtWidgets 和 QtGui 模块的支持。
  3. 创建主窗口类:我们将创建一个主窗口类来处理托盘图标的创建和管理。
  4. 设置托盘图标:使用 QSystemTrayIcon 创建托盘图标,并设置图标、提示文本和上下文菜单。
  5. 显示托盘图标:在应用启动时显示托盘图标,并确保应用在最小化时不关闭。
  6. 响应鼠标事件:处理鼠标点击托盘图标的事件,例如显示上下文菜单或弹出提示。

完整代码示例

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

 

posted @ 2024-11-25 12:33  王廷胡_白嫖帝  阅读(428)  评论(0)    收藏  举报