QT关闭一个窗口之后同时停掉那个窗口在运行的代码
时间: 2023-06-24 15:03:25 浏览: 130
可以在窗口关闭事件中添加代码来停止窗口中正在运行的代码。例如,可以创建一个变量来表示窗口是否关闭,并在窗口关闭事件中将其设置为真。然后,在代码中定期检查这个变量的值,如果它为真,则停止运行。具体实现方法取决于你的代码结构,但下面是一个可能的示例:
```c++
// 在窗口类的头文件中添加一个变量
class MyWindow : public QMainWindow {
Q_OBJECT
public:
MyWindow(QWidget *parent = nullptr);
private:
bool is_closed_; // 用于表示窗口是否关闭
protected:
void closeEvent(QCloseEvent *event) override; // 窗口关闭事件
private slots:
void myCode(); // 窗口中的代码
};
// 在窗口类的源文件中实现窗口关闭事件
void MyWindow::closeEvent(QCloseEvent *event) {
is_closed_ = true; // 将变量设置为真,表示窗口已关闭
QMainWindow::closeEvent(event); // 调用基类的事件处理函数
}
// 在窗口类的源文件中实现窗口中的代码
void MyWindow::myCode() {
while (!is_closed_) {
// 在这里编写你的代码
}
}
```
在上面的示例中,窗口类中添加了一个名为 `is_closed_` 的变量,用于表示窗口是否关闭。在窗口关闭事件中,将这个变量设置为真,表示窗口已关闭。在窗口中的代码中,使用一个循环来定期检查 `is_closed_` 变量的值,如果它为真,则停止执行代码。注意,这里只是示例代码,具体实现方法可能需要根据你的代码结构进行调整。
阅读全文