QSystemTrayIcon

xiaoxiao2022-06-11  78

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 reasonQSystemTrayIcon::Context1The context menu for the system tray entry was requestedQSystemTrayIcon::DoubleClick2The system tray entry was double clicked.QSystemTrayIcon::Trigger3The system tray entry was clicked 消息图标ValueDescriptionQSystemTrayIcon::NoIcon0No icon is shown.QSystemTrayIcon::Information1An information icon is shown.QSystemTrayIcon::Warning2A standard warning icon is shown.QSystemTrayIcon::Critical3A critical warning icon is shown.
小例子

/* * 系统托盘 * 可以显示小菜单,提示内容,信息 * 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.6miu.com/read-4931355.html

最新回复(0)