【发布时间】:2021-07-25 15:54:00
【问题描述】:
我正在创建一个有两个 MainWindow 的应用程序。
单击按钮后,将显示第二个 MainWindow。但是如果在第一个按钮的代码中我给hide()MainWindow1,我就不能再发送了。
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
hide();
two = new MainWindow2 (this);
two -> show();
}
#include "mainwindow2.h"
#include "ui_mainwindow2.h"
#include "mainwindow.h"
MainWindow2::MainWindow2(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow2)
{
ui->setupUi(this);
}
MainWindow2::~MainWindow2()
{
delete ui;
}
void MainWindow2::on_pushButton_clicked()
{
MainWindow w;
w.show();
}
【问题讨论】:
-
MainWindow w; w.show();注意这里的w是一个局部变量,它的生命周期在作用域的末尾结束,这意味着当on_pushButton_clicked()结束时w不再存在。