QMainWindow 隐藏事件
时间: 2024-09-18 09:02:39 浏览: 35
鼠标点击别处隐藏widget
`QMainWindow`是Qt中的一个高级窗口类,它继承自`QWidget`,通常作为应用程序的主窗口。当`QMainWindow`隐藏(通过调用其`hide()`方法)时,会发生一个`QHideEvent`信号。这个信号可以被连接到一个槽函数(slot function),用于处理隐藏事件的特定逻辑。
例如,在你的`QMainWindow`的头文件中,可能会声明这样的信号连接:
```cpp
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
protected:
void hideEvent(QHideEvent *event); // 声明隐藏事件槽函数
private slots:
// 在这里添加处理隐藏事件的函数实现
void on_hide();
};
```
然后在源码里定义`hideEvent`函数以及相应的槽函数`on_hide()`:
```cpp
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {}
void MainWindow::hideEvent(QHideEvent *event) {
emit on_hide(); // 触发槽函数
}
// 槽函数实现
void MainWindow::on_hide() {
// 这里可以编写处理隐藏状态改变的代码,如保存数据、更新UI等
}
```
当你调用`hide()`方法时,`hideEvent`会被触发,进而执行`on_hide()`函数中的代码。
阅读全文