Qt進階--多窗口概要

我是從這個教程總結的:http://c.biancheng.net/view/1874.html

多窗口有很多知識點,而且挺亂的,這裏分成幾點大概說一下,這種講法還不錯:

1.多窗口基本分類:

1.1.獨立窗口和嵌入式窗口:

獨立窗口就是指子窗口和父窗口不在父窗口中,獨立窗口對象還要調用它的show()或者其他方法才能顯示出來,否則只是內存中的數據;看似簡單,只要創建個對象,show()一下就完事,但其實獨立窗口也挺有講究:
有專門做開頭封面的Splash窗口,有專門做對話框的Dialog,還有做工具欄的ToolBar,看這裏:

https://blog.csdn.net/realliyuhao/article/details/106585677

嵌入式窗口有時候更像是控件,只要添加到主窗口中就能顯示;
嵌入式窗口的核心是將子窗口添加到父窗口中以及管理子窗口,看這裏:

https://blog.csdn.net/realliyuhao/article/details/106611640

1.2.有父窗口的和沒有父窗口的:

我們經常在構造函數中看到的QWidget *parent就是用來指定父窗口的,有父窗口的,不現實在任務欄,父窗口關閉則子窗口全關閉;沒父窗口的反之.

由父窗口和子窗口引出一個東西就是父子窗口間的對話:
(也就是父子之間進行函數的調用和數據的傳輸).
1:子類主導對話(子類進行數據的索取和函數調用):

QWidget *QWidget::parentWidget() const:這個函數返回父窗口的指針,然後你懂的

2.父類主導對話:
更簡單了,子類窗口對象都是父類創建的;

還有一個就是父子類之間的信號和槽函數的連接,自由度挺大,放到哪挺考驗技術的.

2.其他:

在這裏說一個模態的東西:
setWindowModality() 函數用於設置窗口的模態,只對窗口類型有用。
參數是枚舉類型Qt::WindowModality的常量:
常量                     意義
Qt::NonModal             無模態,不會阻止其他窗口的輸入
Qt::WindowModal     窗口對於其父窗口、所有的上級父窗口都是模態的
Qt::ApplicationModal     窗口對整個應用程序是模態的,阻止所有窗口的輸入

還有一大堆設置窗口特性的函數:懶得說了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章