qt 任务托盘
时间: 2023-07-05 08:04:40 浏览: 179
Qt提供了一个QSystemTrayIcon类,可以很方便地在任务栏系统托盘中显示图标和菜单,并且可以响应鼠标事件和用户交互。下面是一个简单的示例代码:
```cpp
#include <QApplication>
#include <QSystemTrayIcon>
#include <QMenu>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QSystemTrayIcon trayIcon(QIcon(":/images/icon.png"));
trayIcon.setToolTip("My Application");
QMenu *trayMenu = new QMenu;
trayMenu->addAction("Action 1");
trayMenu->addAction("Action 2");
trayMenu->addSeparator();
trayMenu->addAction("Quit", &app, &QApplication::quit);
trayIcon.setContextMenu(trayMenu);
trayIcon.show();
return app.exec();
}
```
在这个示例中,我们创建了一个QApplication实例和一个QSystemTrayIcon实例,并设置了托盘图标和提示文本。然后我们创建了一个QMenu实例,并添加了一些菜单项和分隔符。最后,我们将菜单设置为QSystemTrayIcon的上下文菜单,并显示托盘图标。
当用户单击托盘图标时,会触发activated()信号。我们可以通过连接这个信号到一个槽函数来处理用户的交互。例如,我们可以显示一个弹出窗口或执行一些其他操作。
```cpp
QObject::connect(&trayIcon, &QSystemTrayIcon::activated, [](QSystemTrayIcon::ActivationReason reason) {
if (reason == QSystemTrayIcon::Trigger) {
// Show a popup window or perform some other action
}
});
```
这样,我们就可以在Qt应用程序中轻松地添加任务栏系统托盘了。
阅读全文