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
消息图标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.
小例子
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();
}