創建新界面類的方法:
右擊工程-->add new-->
-->選擇相應的窗體類
方法一:信號槽函數法
oneform.h
#ifndef ONEFORM_H #define ONEFORM_H #include <QWidget> #include "twoform.h" //要創建第二界面,所以需要第二界面的頭文件 QT_BEGIN_NAMESPACE namespace Ui { class oneform; } QT_END_NAMESPACE class oneform : public QWidget { Q_OBJECT public: oneform(QWidget *parent = nullptr); ~oneform(); public slots: void one_two(void); //第一界面進入第二界面的槽函數 void oneshow(void); //顯示界面1,隱藏界面2 private: Ui::oneform *ui; twoform* win; //創建第二界面 }; #endif // ONEFORM_H
oneform.cpp
#include "oneform.h" #include "ui_oneform.h" oneform::oneform(QWidget *parent) : QWidget(parent) , ui(new Ui::oneform) { ui->setupUi(this); connect(ui->pushButton,SIGNAL(clicked(void)),this,SLOT(one_two(void))); win=new twoform; //創建界面2 connect(win,SIGNAL(oneFunc(void)),this,SLOT(oneshow(void))); //接受界面2發送的信號 } oneform::~oneform() { delete ui; } void oneform::one_two() { win->show(); this->hide(); } void oneform::oneshow() { this->show(); }
twoform.h
#ifndef TWOFORM_H #define TWOFORM_H #include <QWidget> namespace Ui { class twoform; } class twoform : public QWidget { Q_OBJECT public: explicit twoform(QWidget *parent = nullptr); ~twoform(); private: Ui::twoform *ui; public slots: void two_one(void); //第二界面進入第一界面的槽函數 signals: void oneFunc(void); }; #endif // TWOFORM_H
twoform.cpp
#include "twoform.h" #include "ui_twoform.h" twoform::twoform(QWidget *parent) : QWidget(parent), ui(new Ui::twoform) { ui->setupUi(this); connect(ui->pushButton,SIGNAL(clicked(void)),this,SLOT(two_one(void))); } twoform::~twoform() { delete ui; } void twoform::two_one() { emit oneFunc(); //發射信號,通知界面1顯示---界面1需要接受這個信號 this->hide(); }
工程和視頻教程下載:https://pan.baidu.com/s/1jgycJT4W_7QZLMlFvfo7zQ 提取碼:6666
方法二:靜態成員法
工程和視頻教程下載:https://pan.baidu.com/s/1V65MsG97amOVPt45ifnjIg 提取碼:6666