QWidget QMainWindow QDialog 三者區(qū)別
Qt類是一個提供所需的像全局變量一樣的大量不同的標(biāo)識符的命名空間。通常情況下,你可以忽略這個類。QObject和一些其它類繼承了它,所以在這個Qt命名空間中定義的所有標(biāo)識符通常情況下都可以無限制的使用。
QWidget類是所有用戶界面對象的基類。 窗口部件是用戶界面的一個原子:它從窗口系統(tǒng)接收鼠標(biāo)、鍵盤和其它事件,并且在屏幕上繪制自己的表現(xiàn)。每一個窗口部件都是矩形,并且它們按Z軸順序排列的。一個窗口部件可以被它的父窗口部件或者它前面的窗口部件蓋住一部分。
QMainWindow 類提供一個有菜單條、錨接窗口(例如工具條)和一個狀態(tài)條的主應(yīng)用程序窗口。主窗口通常用在提供一個大的中央窗口部件(例如文本編輯或者繪制畫布)以及周圍菜單、工具條和一個狀態(tài)條。QMainWindow常常被繼承,因為這使得封裝中央部件、菜單和工具條以及窗口狀態(tài)變得更容易。繼承使創(chuàng)建當(dāng)用戶點擊菜單項或者工具條按鈕時被調(diào)用的槽成為可能。你也可以使用Qt設(shè)計器來創(chuàng)建主窗口。
QDialog類是對話框窗口的基類。對話框窗口是主要用于短期任務(wù)以及和用戶進(jìn)行簡要通訊的***窗口。QDialog可以是模式的也可以是非模式的。QDialog支持?jǐn)U展性并且可以提供返回值。它們可以有默認(rèn)按鈕。QDialog也可以有一個QSizeGrip在它的右下角,使用setSizeGripEnabled()。
QDialog 是最普通的***窗口。不被嵌入到一個父窗口部件的窗口部件被叫做***窗口部件。通常情況下,***窗口部件是有框架和標(biāo)題欄的窗口(盡管如果使用了一定的窗口部件標(biāo)記,創(chuàng)建***窗口部件時也可能沒有這些裝飾。)在Qt中,QMainWindow和和不同的QDialog的子類是最普通的***窗口。
如果是***對話框,那就基于QDialog創(chuàng)建,如果是主窗體,那就基于QMainWindow,如果不確定,或者有可能作為***窗體,或有可能嵌入到其他窗體中,則基于QWidget創(chuàng)建。
當(dāng)然了,實際中,你還可以基于任何其他部件類來派生??磳嶋H需求了,比如QFrame、QStackedWidget等等。
小結(jié):在Qt類中QWidget QMainWindow QDialog 三個類的區(qū)別都應(yīng)該有所了解了吧?都是屬于界面劃分的,希望你在學(xué)習(xí)的過程中,本篇文章能夠幫你解決問題。
【編輯推薦】