QT代码实现 在第一个窗口点击一个按钮进入第二个窗口,关闭第二个窗口返回第一个窗口
时间: 2023-08-24 16:07:33 浏览: 90
您可以使用以下代码来实现在第一个窗口点击按钮进入第二个窗口,然后关闭第二个窗口返回第一个窗口:
在第一个窗口的头文件中(例如mainwindow.h):
```cpp
#include <QMainWindow>
#include <QPushButton>
#include <QWidget>
#include "secondwindow.h" // 包含第二个窗口的头文件
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void onButtonClicked(); // 槽函数,处理按钮点击事件
private:
QPushButton *button; // 按钮对象
SecondWindow *secondWindow; // 第二个窗口对象
};
```
在第一个窗口的源文件中(例如mainwindow.cpp):
```cpp
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// 创建按钮对象
button = new QPushButton("Open Second Window", this);
button->setGeometry(100, 100, 200, 50);
// 创建第二个窗口对象
secondWindow = new SecondWindow();
// 连接按钮的点击事件到槽函数
connect(button, &QPushButton::clicked, this, &MainWindow::onButtonClicked);
}
MainWindow::~MainWindow()
{
}
void MainWindow::onButtonClicked()
{
// 显示第二个窗口
secondWindow->show();
// 隐藏当前窗口
this->hide();
}
```
在第二个窗口的头文件中(例如secondwindow.h):
```cpp
#include <QMainWindow>
class SecondWindow : public QMainWindow
{
Q_OBJECT
public:
SecondWindow(QWidget *parent = nullptr);
~SecondWindow();
private slots:
void closeEvent(QCloseEvent *event); // 槽函数,处理窗口关闭事件
private:
void returnToMainWindow(); // 返回第一个窗口
};
```
在第二个窗口的源文件中(例如secondwindow.cpp):
```cpp
#include "secondwindow.h"
SecondWindow::SecondWindow(QWidget *parent)
: QMainWindow(parent)
{
}
SecondWindow::~SecondWindow()
{
}
void SecondWindow::closeEvent(QCloseEvent *event)
{
// 返回第一个窗口
returnToMainWindow();
event->accept();
}
void SecondWindow::returnToMainWindow()
{
// 创建第一个窗口对象
QMainWindow *mainWindow = new QMainWindow();
mainWindow->show();
// 关闭当前窗口
this->close();
}
```
通过使用以上代码,当在第一个窗口点击按钮时,会打开第二个窗口;当关闭第二个窗口时,会返回第一个窗口。
阅读全文