举例QWidget关闭窗口的信号与槽
时间: 2024-03-13 11:43:37 浏览: 357
QWidget关闭窗口的信号是`void QWidget::destroyed(QObject *obj = nullptr)`,当QWidget被销毁时,会发送该信号。
下面是一个示例代码,演示如何通过信号与槽机制实现QWidget关闭窗口的操作:
```cpp
#include <QApplication>
#include <QWidget>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
window.setWindowTitle("QWidget");
QPushButton button("Close", &window);
button.setGeometry(50, 50, 100, 30);
// 点击按钮,关闭窗口
QObject::connect(&button, &QPushButton::clicked, &window, &QWidget::close);
window.show();
return app.exec();
}
```
在上面的代码中,通过QPushButton的clicked信号和QWidget的close槽函数连接起来,当按钮被点击时,会触发关闭窗口的操作。
当QWidget被销毁时,会自动发送destroyed信号。如果需要在窗口被销毁时执行一些操作,可以将该信号与槽函数连接起来。例如:
```cpp
// 定义一个槽函数,用于在QWidget被销毁时输出一条信息
void on_window_destroyed(QObject *obj)
{
qDebug() << "QWidget destroyed!";
}
// 将destroyed信号与槽函数连接起来
QObject::connect(&window, &QWidget::destroyed, on_window_destroyed);
```
这样,在QWidget被销毁时,会输出一条信息,用于提示QWidget已经被销毁。
阅读全文