QT父視窗和子視窗互相通訊

2021-07-17 11:33:35 字數 849 閱讀 6969

這個問題上網查了好多,大神們都說的很簡單,對於我這樣的小白來說,理解起來就有點吃力了,下面記錄一下,給自己留給筆記,也是給正在摸索中的小白們一點參考!

一  大家要明白如何建立子視窗:

1 利用新建ui的方式來新建,我沒有用這種方式,這裡就先不說了!

2 利用新建乙個類,來建立乙個視窗,這種方法其實很簡單。下面我們就說這種方法:

首先我們要新建乙個你要建立串列埠的類,新建標頭檔案,cpp檔案,在標頭檔案中定義類,以及你自己想要新增的控制項和各種需要的函式宣告。然後在cpp檔案中定義函式,記得要初始化你要用到的變數。好啦,然後把頭檔案新增到你的主視窗的標頭檔案中,在主視窗中定義乙個你新增的標頭檔案中的類,然後我們就可以利用show()函式或者是exec()顯示子視窗了。兩種方法體現在你要定義的子視窗是模態的還是非模態的。

二  顯示出了子視窗之後,我們的檔案就是如何讓子視窗和父視窗通訊了。

大神們都說利用訊號和槽通訊!

沒錯就是訊號和槽,可是小白我不知啊!其實很簡單!

如何實現呢,這要看你是要子視窗給父視窗傳送資料,還是父視窗給子視窗傳送資料了,道理很簡單,就是利用訊號和槽的引數來傳遞資料。

1 子視窗給父視窗傳送資料,我們可以在子視窗中定義訊號,然後在父視窗中定義槽,在父視窗中將槽和訊號連線起來,這樣,你子視窗中的事件觸發了訊號,父視窗中的槽就會被執行,資料也就傳遞過來了,signal(引數1,引數2),slot(引數1,引數2)。

2 父視窗給子視窗傳送資料,可以通過兩種方式,第一種就是可以給自視窗的類中定義公有變數,然後在主視窗中改變此公有變數的值來達到傳遞的目的,第二種就是訊號和槽的方式,通過在子視窗中定義槽,在主視窗中定義訊號,然後連線,利用引數傳遞資料。

子視窗呼叫父視窗

相信學計算機的大學生都碰過這樣的程式設計作業吧 程式執行後主視窗隱藏,然後彈出登入框,輸入賬號密碼登陸成功後再關閉登陸框,然後讓之前隱藏的主視窗重新顯示。沒錯,我當時就是這麼笨,怎麼都想不到好的解決辦法 當時的同學都是不管之前隱藏的主視窗,而是直接新建了乙個主視窗 剛好昨晚在做專案時碰到類似的情況,...

父視窗和子視窗的互調

1.jquery 在iframe子頁面獲取父頁面元素 如下 objid parent.document 2.jquery在父頁面 獲取iframe子頁面的元素 如下 objid document.frames iframename document 3.js 在iframe子頁面獲取父頁面元素 如下...

Qt中父視窗呼叫子視窗的控制項

父視窗為a9mechanical,它用來查詢資料庫中滿足條件的資料,並且顯示在控制項tableview中,當雙擊tableview中某一行資料時,改行資料的最後一列的內容顯示在子視窗的textedit控制項中 子視窗為showcontent,它用來顯示tableview中雙擊選中的某行資料。需要將s...