QT 如何实现点击缩小,变为任务栏图标
时间: 2024-03-27 22:35:02 浏览: 125
最小化到任务栏
在 Qt 中,可以通过重写窗口的 `closeEvent` 事件来实现点击关闭按钮时将窗口最小化到任务栏。
具体实现方式如下:
1. 在窗口类中重写 `closeEvent` 事件:
```cpp
void MyWindow::closeEvent(QCloseEvent *event)
{
event->ignore();
this->hide();
}
```
这段代码中,我们首先调用了 `event->ignore()` 方法,告诉 Qt 不处理该事件,然后将窗口隐藏起来。
2. 在窗口类的头文件中添加一个 `QSystemTrayIcon` 对象,用于在任务栏中显示窗口图标:
```cpp
#include <QSystemTrayIcon>
class MyWindow : public QWidget
{
Q_OBJECT
public:
MyWindow(QWidget *parent = nullptr);
private:
QSystemTrayIcon *m_trayIcon;
};
```
3. 在窗口类的构造函数中初始化 `QSystemTrayIcon` 对象:
```cpp
MyWindow::MyWindow(QWidget *parent)
: QWidget(parent)
{
// ...
m_trayIcon = new QSystemTrayIcon(this);
m_trayIcon->setIcon(QIcon(":/icon.png"));
m_trayIcon->show();
// ...
}
```
这段代码中,我们首先创建了一个 `QSystemTrayIcon` 对象,并将窗口作为其父对象。然后调用了 `setIcon` 方法设置任务栏图标,最后调用 `show` 方法显示任务栏图标。
现在,当用户点击窗口的关闭按钮时,窗口会被最小化到任务栏,同时任务栏中会出现窗口的图标。用户可以通过单击任务栏图标来恢复窗口。
阅读全文