Qt Widget程序点击关闭窗口按钮程序不关闭在右下角生成最小化图标
时间: 2023-07-07 10:24:20 浏览: 78
你可以通过重写 QWidget 的 closeEvent() 函数来实现这个功能。在该函数中,你可以隐藏窗口并在系统托盘区域创建一个最小化图标。
以下是一个示例代码,可以实现在关闭窗口时隐藏窗口并在系统托盘区域创建最小化图标:
```cpp
void MyWidget::closeEvent(QCloseEvent *event)
{
// 隐藏窗口
hide();
// 创建系统托盘图标
QSystemTrayIcon *trayIcon = new QSystemTrayIcon(this);
QIcon icon(":/icon.ico"); // 最小化图标
trayIcon->setIcon(icon);
trayIcon->show();
// 将事件忽略,这样程序就不会退出
event->ignore();
}
```
需要注意的是,在程序退出时,需要手动删除系统托盘图标,否则会导致内存泄漏。可以在程序的析构函数中删除该对象:
```cpp
MyWidget::~MyWidget()
{
delete trayIcon;
}
```
相关问题
Qt点击关闭窗口按钮隐藏窗口并在任务栏生成程序图标
你可以在 Qt 的窗口类中重写 closeEvent() 函数,来实现点击关闭窗口按钮时隐藏窗口并在任务栏生成程序图标的功能。具体实现可以参考如下代码:
```cpp
void MyWindow::closeEvent(QCloseEvent *event)
{
// 隐藏窗口
hide();
// 在任务栏生成程序图标
setWindowFlags(Qt::Window | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
event->ignore();
}
```
在上面的代码中,当用户点击关闭窗口按钮时,首先我们会隐藏窗口。然后,我们设置窗口的标志位,以便在任务栏生成程序图标。最后,我们阻止关闭事件的默认处理,这样就不会真正地关闭窗口了。
如何让qt程序在右下角生成图标
你可以使用QSystemTrayIcon类来在系统托盘中显示图标。首先,创建一个QSystemTrayIcon实例,并将其图标设置为你想要显示的图像。然后,使用show()方法将其显示在系统托盘中。
以下是一个简单的示例代码:
```
#include <QApplication>
#include <QSystemTrayIcon>
#include <QMenu>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建QSystemTrayIcon实例
QSystemTrayIcon trayIcon;
trayIcon.setIcon(QIcon(":/images/icon.png"));
// 创建一个菜单并添加退出选项
QMenu *menu = new QMenu();
QAction *quitAction = new QAction("退出", menu);
QObject::connect(quitAction, &QAction::triggered, &app, &QApplication::quit);
menu->addAction(quitAction);
// 将菜单设置为QSystemTrayIcon的菜单
trayIcon.setContextMenu(menu);
// 显示QSystemTrayIcon
trayIcon.show();
return app.exec();
}
```
在上面的示例中,我们创建了一个QSystemTrayIcon实例,并将其图标设置为“icon.png”文件中的图像。然后,我们创建一个菜单,并向其中添加一个退出选项。最后,我们将菜单设置为QSystemTrayIcon的菜单,并显示该图标。当用户右键单击该图标时,将显示菜单。当用户单击退出选项时,应用程序将退出。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)