qtc++实现打开主界面后点击按钮弹出工程选择界面,工程选择完成后弹出信息填写界面,填写完成后返回主界面,且主界面原有的隐藏控件treewidget可以显示,其中三个界面已经手动创建完成,三个界面的头文件和源文件该怎么写
时间: 2024-05-15 21:12:34 浏览: 140
C++的头文件和实现文件分别写什么
首先,你需要在主界面上创建一个按钮,用于触发打开工程选择界面,并为该按钮添加槽函数。
在槽函数中,通过调用工程选择界面的show()函数,弹出工程选择界面。
工程选择界面的头文件和源文件可以按照以下方式编写:
projectselect.h:
```cpp
#ifndef PROJECTSELECT_H
#define PROJECTSELECT_H
#include <QDialog>
namespace Ui {
class ProjectSelect;
}
class ProjectSelect : public QDialog
{
Q_OBJECT
public:
explicit ProjectSelect(QWidget *parent = nullptr);
~ProjectSelect();
private slots:
void on_btnSelect_clicked();
private:
Ui::ProjectSelect *ui;
};
#endif // PROJECTSELECT_H
```
projectselect.cpp:
```cpp
#include "projectselect.h"
#include "ui_projectselect.h"
ProjectSelect::ProjectSelect(QWidget *parent) :
QDialog(parent),
ui(new Ui::ProjectSelect)
{
ui->setupUi(this);
}
ProjectSelect::~ProjectSelect()
{
delete ui;
}
void ProjectSelect::on_btnSelect_clicked()
{
// 执行工程选择操作
// ...
// 显示信息填写界面
// infoEdit->show();
}
```
信息填写界面的头文件和源文件可以按照以下方式编写:
infoedit.h:
```cpp
#ifndef INFOEDIT_H
#define INFOEDIT_H
#include <QDialog>
namespace Ui {
class InfoEdit;
}
class InfoEdit : public QDialog
{
Q_OBJECT
public:
explicit InfoEdit(QWidget *parent = nullptr);
~InfoEdit();
private slots:
void on_btnSubmit_clicked();
private:
Ui::InfoEdit *ui;
};
#endif // INFOEDIT_H
```
infoedit.cpp:
```cpp
#include "infoedit.h"
#include "ui_infoedit.h"
InfoEdit::InfoEdit(QWidget *parent) :
QDialog(parent),
ui(new Ui::InfoEdit)
{
ui->setupUi(this);
}
InfoEdit::~InfoEdit()
{
delete ui;
}
void InfoEdit::on_btnSubmit_clicked()
{
// 执行信息提交操作
// ...
// 返回主界面
accept();
}
```
在主界面的头文件中,需要添加以下成员变量和槽函数:
```cpp
private:
QTreeWidget *m_treeWidget;
QPushButton *m_btnSelect;
// 工程选择界面和信息填写界面的指针
ProjectSelect *m_projectSelect;
InfoEdit *m_infoEdit;
private slots:
void on_btnSelect_clicked();
```
在主界面的源文件中,需要在构造函数中初始化成员变量,并为按钮添加点击事件的槽函数:
```cpp
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 初始化隐藏控件
m_treeWidget = new QTreeWidget(this);
m_treeWidget->setGeometry(0, 0, 200, 200);
m_treeWidget->hide();
// 创建工程选择界面和信息填写界面
m_projectSelect = new ProjectSelect(this);
m_infoEdit = new InfoEdit(this);
// 创建按钮并添加点击事件的槽函数
m_btnSelect = new QPushButton("Select", this);
m_btnSelect->setGeometry(0, 210, 80, 30);
connect(m_btnSelect, &QPushButton::clicked, this, &MainWindow::on_btnSelect_clicked);
}
void MainWindow::on_btnSelect_clicked()
{
// 显示工程选择界面
m_projectSelect->show();
}
```
在工程选择界面的槽函数中,通过调用信息填写界面的show()函数,弹出信息填写界面,并在信息填写完成后返回主界面:
```cpp
void ProjectSelect::on_btnSelect_clicked()
{
// 执行工程选择操作
// ...
// 显示信息填写界面
m_infoEdit->show();
// 等待信息填写完成
if (m_infoEdit->exec() == QDialog::Accepted)
{
// 显示隐藏控件
m_treeWidget->show();
}
}
```
阅读全文