Qt 设置显示通知栏

Qt 设置显示通知栏

在windows上我们常常会使用到右下角的通知栏,非常方便,但使用Qt如何实现那?
在Qt上主要使用QAction、QMenu,QSystemTrayIcon即可实现简单的通知栏。

    //widget.h
    //通知栏相关
    QMenu *myMenu;
    QAction *quitAction;
    QSystemTrayIcon *myTrayIcon;

    //widget.cpp
    //通知栏相关
    quitAction = new QAction(tr("退出"),this);//右键点图标之后的选项

    myMenu = new QMenu((QWidget*)QApplication::desktop());
    myMenu->addAction(quitAction);
    //判断系统是否支持托盘图标
    if(!QSystemTrayIcon::isSystemTrayAvailable())
    {
        return;
    }
    myTrayIcon = new QSystemTrayIcon(this);
    myTrayIcon->setIcon(QIcon(":/student/img/book.jpg"));
    myTrayIcon->setToolTip(tr("学生成绩管理系统"));
    myTrayIcon->showMessage("托盘","托盘管理",QSystemTrayIcon::Information,10000);
    myTrayIcon->setContextMenu(myMenu);
    myTrayIcon->show();

效果:

1.通知栏图标


2.右键点击图标后



可以增加选项

    //widget.h
    //通知栏相关
    QMenu *myMenu;
    QAction *quitAction;
    QAction * helloAction;
    QSystemTrayIcon *myTrayIcon;

    //widget.cpp
    //通知栏相关
    quitAction = new QAction(tr("退出"), this);
    helloAction = new QAction(tr("你好!"), this);

    myMenu = new QMenu((QWidget*)QApplication::desktop());
    myMenu->addAction(helloAction);
    myMenu->addAction(quitAction);

    //判断系统是否支持托盘图标
    if(!QSystemTrayIcon::isSystemTrayAvailable())
    {
        return;
    }
    myTrayIcon = new QSystemTrayIcon(this);
    myTrayIcon->setIcon(QIcon(":/student/img/book.jpg"));
    myTrayIcon->setToolTip(tr("学生成绩管理系统"));
    myTrayIcon->showMessage("托盘","托盘管理",QSystemTrayIcon::Information,10000);
    myTrayIcon->setContextMenu(myMenu);
    myTrayIcon->show();

效果如下:



当然还有其他的功能,可以自行发现。

你可能感兴趣的:(QT)