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::Unknown | 0 | Unknown reason |
QSystemTrayIcon::Context | 1 | The context menu for the system tray entry was requested |
QSystemTrayIcon::DoubleClick | 2 | The system tray entry was double clicked. |
QSystemTrayIcon::Trigger | 3 | The system tray entry was clicked |
消息图标 | Value | Description |
---|
QSystemTrayIcon::NoIcon | 0 | No icon is shown. |
QSystemTrayIcon::Information | 1 | An information icon is shown. |
QSystemTrayIcon::Warning | 2 | A standard warning icon is shown. |
QSystemTrayIcon::Critical | 3 | A critical warning icon is shown. |
小例子
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);
psystray->setIcon(QIcon(":/image/wz2.jpg"));
psystray->setToolTip("i`m systemtray ,don`t click me!");
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();
}