QSystemTrayIcon理论总结
- 一、概述
- 二、使用对象
- 三、使用
- 四、常用函数介绍
- 1. 静态函数
- 2. 公共槽函数
- 3. 信号
一、概述
现代操作系统通常在桌面上提供一个特殊的区域,称为系统托盘或通知区域,长期运行的应用程序可以在这里显示图标和短消息。什么意思呢?其实就是像这个下面这个功能。鼠标右键一个图表,就会弹出一个菜单栏。还有最右边的消息中心就是通知消息的内容。
二、使用对象
QSystemTrayIcon类可以在以下平台上使用:
- 所有支持的Windows版本。
- X11的所有窗口管理器和独立托盘实现实现了 XEmbed 系统托盘规范。
实现 D-Bus 规范的所有X11桌面环境,包括最新版本的KDE和Unity。其实也是就是支持Linux系统。 - macOS支持的所有版本。
要检查用户桌面上是否有系统托盘,请调用QSystemTrayIcon::isSystemTrayAvailable()静态函数。
三、使用
要添加一个系统托盘条目,创建一个QSystemTrayIcon对象,调用setContextMenu()为图标提供一个上下文菜单,也就是构造一个QMenu的对象就好,并调用 show() 使其在系统托盘中可见。状态通知消息可以在任何时候使用showMessage() 显示。
如果想要定制很复杂的那个系统托盘菜单就是像下面这种的话,就是自己继承一下QMenu然后重新定制就好啦
如果在构建系统托盘图标时系统托盘不可用,但之后变得可用,如果图标可见,QSystemTrayIcon将自动在系统托盘中为应用程序添加一个条目。
当用户激活图标时发出activated()信号。
只有在X11上,当一个工具提示被请求时,QSystemTrayIcon会接收一个QEvent:: tooltip类型的QHelpEvent。此外,QSystemTrayIcon接收类型为QEvent:: wheel的车轮事件。其他平台不支持这些功能。
四、常用函数介绍
1. 静态函数
- bool isSystemTrayAvailable():就是看这个系统支持这个系统托盘不
- bool supportsMessages():看这个系统支持那个消息功能不
2. 公共槽函数
- hide():就是隐藏这个系统托盘
- setVisible(bool visible):设置这个系统托盘是否显示
- show():显示这个系统托盘
- showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000):就是设置那个消息,里面包括消息内容,图标,什么时候消失之类的
- showMessage(const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint = 10000):也是设置那个消息
3. 信号
- activated(QSystemTrayIcon::ActivationReason reason):就是点击了这个系统托盘
- messageClicked():就是消息点击的时候发射