qt 程序最小化在后台显示
时间: 2023-12-22 13:03:02 浏览: 87
要让Qt程序最小化后在后台显示,可以使用以下代码:
```cpp
#include <QSystemTrayIcon>
#include <QMenu>
// 创建系统托盘图标
QSystemTrayIcon *trayIcon = new QSystemTrayIcon(this);
// 创建菜单
QMenu *menu = new QMenu(this);
menu->addAction("打开");
menu->addAction("退出");
// 将菜单设置为托盘图标的菜单
trayIcon->setContextMenu(menu);
// 显示托盘图标
trayIcon->show();
// 最小化时隐藏主窗口
connect(this, &QWidget::windowIconChanged, [=](const QIcon &icon){
if(icon.isNull()) {
this->hide();
}
});
// 点击托盘图标显示主窗口
connect(trayIcon, &QSystemTrayIcon::activated, [=](QSystemTrayIcon::ActivationReason reason){
if(reason == QSystemTrayIcon::Context) {
menu->show();
} else if(reason == QSystemTrayIcon::Trigger) {
this->showNormal();
}
});
```
这段代码中,我们首先创建了一个系统托盘图标,并设置了一个菜单。然后,我们将菜单设置为托盘图标的菜单,并显示托盘图标。
接着,我们使用connect函数连接了一个槽函数,当主窗口的图标变为null时,表示窗口已经最小化了,此时我们隐藏主窗口。当用户点击托盘图标时,我们再次使用connect函数连接了一个槽函数,根据用户的操作来显示或隐藏主窗口或菜单。
阅读全文