1. 程式人生 > >QT5中實現多視窗切換,並從子視窗返回資料

QT5中實現多視窗切換,並從子視窗返回資料

該程式的功能:主窗口裡有兩個button和ltextEdit,按下下一頁button後彈出子視窗並隱藏主視窗,按下退出Button後退出程式。子視窗有文字框lineEdit和button,按下子視窗的button後,會向主視窗傳送文字框裡的值,然後再ltextEdit中顯示,並且子視窗關閉。  


用到的軟體:QT5


注:以下檔案全部在同一個專案檔案中


說明:在這隻介紹兩個視窗之間的切換,如若想要更多的視窗切換,只需按同樣的方法去實現就行了。

一、

1.主視窗的ui介面,如圖


2.子視窗ui介面,如圖


3.主程式。


4、主視窗的標頭檔案 MainWindow.h


5、主介面的.cpp檔案 MainWindow.cpp


6、子視窗的標頭檔案 fram.h


7、子視窗的.cpp檔案 fram.cpp


二、程式的執行效果


1、首先彈出以下介面


2、當按下“下一頁”按鈕是,出現以下界


3、在文字框中輸入資料,並將該資料返回到主視窗。如在文字框輸入‘“返回主視窗”,然後按下按鈕後,


4、主視窗如下圖:


Qt類建構函式中explicit修飾符的作用?

explicit是C++的語法關鍵字。 
其功能是:其限定的其類的建構函式只能被顯式呼叫

#include <iostream>
using namespace std;
class Class_1
{
private:
    int num;

public:
    /*普通建構函式*/
    Class_1(int n)
    {
        num=n;
    }
};
class Class_2
{
private:
    int num;

public:
    /*explicit(顯式)建構函式*/
    explicit Class_2(int n)
    {
        num=n;
    }
};

int main()
{
    Class_1 t1=12;  //可以隱式呼叫其建構函式,成功
//    Class_2 t2=12;    //編譯錯誤,不能隱式呼叫其建構函式
    Class_2 t2(12); //建構函式只能顯式呼叫

    return 0;
}
訊號和槽:
(1)要想連線訊號和槽,我們需要呼叫 QObject 物件中的 connect 靜態成員函式。它的基本語法是:
QObject::connect(傳送者,訊號,接收者,槽).
(2)當然,如果你所定義的類是QObject類的一個子類,在子類中連線時也可以省去前面的QObject::,而簡寫成這樣:
connect(傳送者,訊號,接收者,槽),那麼,如何判斷一個類是不是QObject類的子類呢?只需在標頭檔案中檢視定義類時是否帶有Q_OBJECT巨集即可。
(3)注意:傳送者和接收者都是指標形式。