qt 窗口关闭槽函数
时间: 2023-07-13 09:04:16 浏览: 459
在 Qt 中,关闭窗口的槽函数可以通过重写 QWidget 类的 closeEvent() 函数来实现。closeEvent() 函数会在窗口关闭时自动调用,我们可以在这个函数中添加我们想要执行的操作。
以下是一个示例代码:
```cpp
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr);
protected:
void closeEvent(QCloseEvent *event) override;
};
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
// ...
}
void MyWidget::closeEvent(QCloseEvent *event)
{
// 添加关闭窗口时要执行的操作
// ...
event->accept(); // 接受关闭事件
}
```
在上面的代码中,我们重写了 closeEvent() 函数,并在其中添加了要执行的操作。最后,我们调用了 QCloseEvent 对象的 accept() 函数来接受关闭事件。
当然,还可以利用 Qt 提供的信号与槽机制,来实现窗口关闭时自动执行槽函数的功能。例如:
```cpp
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr);
private slots:
void onWindowClose();
private:
QPushButton *m_button;
};
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
m_button = new QPushButton(tr("Close"), this);
connect(m_button, &QPushButton::clicked, this, &MyWidget::onWindowClose);
}
void MyWidget::onWindowClose()
{
// 添加关闭窗口时要执行的操作
// ...
close(); // 关闭窗口
}
```
在上面的代码中,我们创建了一个 QPushButton 对象,并将其 clicked() 信号与 onWindowClose() 槽函数连接。当用户点击按钮时,会自动调用 onWindowClose() 槽函数。在这个函数中,我们可以添加要执行的操作,并最终调用 close() 函数来关闭窗口。