QSystemTrayIcon

QSystemTrayIcon

系统托盘,属性主要是提示,是否可见

属性设置
函数描述
void setContextMenu(QMenu *menu)提示的菜单
void setIcon(const QIcon &icon)图标
void setToolTip(const QString &tip)提示的内容
slots
函数描述
void hide()隐藏
void setVisible(bool visible)可见性
void show()显示
void showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000)显示的消息
void showMessage(const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint = 10000)
signal
void    activated(QSystemTrayIcon::ActivationReason reason)
void    messageClicked()
枚举
激活原因描述
QSystemTrayIcon::Unknown0Unknown reason
QSystemTrayIcon::Context1The context menu for the system tray entry was requested
QSystemTrayIcon::DoubleClick2The system tray entry was double clicked.
QSystemTrayIcon::Trigger3The system tray entry was clicked
消息图标ValueDescription
QSystemTrayIcon::NoIcon0No icon is shown.
QSystemTrayIcon::Information1An information icon is shown.
QSystemTrayIcon::Warning2A standard warning icon is shown.
QSystemTrayIcon::Critical3A critical warning icon is shown.
小例子

鼠标放在上面的提示
<code>右键显示的菜单</code>

/*
 * 系统托盘
 * 可以显示小菜单,提示内容,信息
 * showmessage看用户的配置等,有时候根本不会出现
*/
mywidget::mywidget()
{
    setWindowTitle("my widget test");
    QVBoxLayout *layout=new QVBoxLayout(this);

    QMenu *pmenu=new QMenu;
    for(int i=0;i<5;i++)
    {
        QAction *Pacton=new QAction;
        Pacton->setIcon(QIcon(":/image/hz"+QString::number(i+1,10)+".jpg"));
        Pacton->setText("菜单"+QString::number(i+1,10));
        pmenu->addAction(Pacton);
    }
    QSystemTrayIcon *psystray=new QSystemTrayIcon(this);
    psystray->setContextMenu(pmenu);                        //set menu
    psystray->setIcon(QIcon(":/image/wz2.jpg"));            //set icon
    psystray->setToolTip("i`m systemtray ,don`t click me!");//set tip

    connect(psystray ,QOverload<QSystemTrayIcon::ActivationReason>::of(&QSystemTrayIcon::activated),
            [&psystray](QSystemTrayIcon::ActivationReason reason){
        switch(reason)
        {
            case QSystemTrayIcon::Trigger:
            {
                qDebug()<<"hello the world";
                psystray->showMessage("标题","内容",QSystemTrayIcon::Information);//有些系统根本不会出现,看配置和用户设置
                break;
            }
            case QSystemTrayIcon::Context:
            {
                break;
            }
            case QSystemTrayIcon::DoubleClick:
            {
                qDebug()<<"double click";
                break;
            }
        }
    });
    psystray->setVisible(true);
    psystray->show();


}

转载于:https://www.cnblogs.com/zylg/p/9831876.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值