Qt 主界面按键跳转新的界面关闭新界面显示空的主界面如何去掉空的主界面
要去掉空的主界面,可以在关闭新界面时,将主界面的关闭事件忽略掉。以下是一个示例代码:
// 主界面类
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
// 创建一个按钮
QPushButton *button = new QPushButton("跳转新界面", this);
connect(button, &QPushButton::clicked, this, &MainWindow::onButtonClicked);
}
private slots:
void onButtonClicked() {
// 创建一个新界面
NewWindow *newWindow = new NewWindow(this);
// 隐藏主界面
hide();
// 显示新界面
newWindow->show();
}
};
// 新界面类
class NewWindow : public QMainWindow {
Q_OBJECT
public:
NewWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
// 创建一个按钮
QPushButton *button = new QPushButton("关闭新界面", this);
connect(button, &QPushButton::clicked, this, &NewWindow::onButtonClicked);
}
private slots:
void onButtonClicked() {
// 关闭新界面
close();
// 显示主界面
parentWidget()->show();
}
protected:
void closeEvent(QCloseEvent *event) override {
// 忽略关闭事件,以防止主界面显示出来
event->ignore();
}
};
在上述代码中,主界面类 MainWindow 中的按钮点击事件 onButtonClicked 中,隐藏了主界面 hide(),并显示了新界面 newWindow->show()。在新界面类 NewWindow 中的按钮点击事件 onButtonClicked 中,关闭了新界面 close(),并显示了主界面 parentWidget()->show()。同时,重写了新界面的 closeEvent 函数,忽略了关闭事件,以防止主界面显示出来。
这样,当点击主界面的按钮时,会跳转到新的界面;当点击新界面的按钮时,会关闭新界面,并显示空的主界面。
原文地址: https://www.cveoy.top/t/topic/iwSM 著作权归作者所有。请勿转载和采集!