QWidget類是所有使用者介面物件的基類。 視窗部件是使用者介面的一個基本單元:它從視窗系統接收滑鼠、鍵盤和其它事件,並且在螢幕上繪製自己。每一個視窗部件都是矩形的,並且它們按Z軸順序排列。一個視窗部件可以被它的父視窗部件或者它前面的視窗部件蓋住一部分。
QMainWindow 類提供一個有選單條、錨接視窗(例如工具條)和一個狀態條的主應用程式視窗。主視窗通常用在提供一個大的中央視窗部件(例如文字編輯或者繪製畫布)以及周圍 選單、工具條和一個狀態條。QMainWindow常常被繼承,因為這使得封裝中央部件、選單和工具條以及視窗狀態條變得更容易,當使用者點選選單項或者工具條按鈕時,槽會被呼叫。
QDialog類是對話方塊視窗的基類。對話方塊視窗是主要用於短期任務以及和使用者進行簡要通訊的頂級視窗。QDialog可以是模態對話方塊也可以是非模態對話方塊。QDialog支援擴充套件性並且可以提供返回值。它們可以有預設按鈕。QDialog也可以有一個QSizeGrip在它的右下角,使用setSizeGripEnabled()。
QDialog 是最普通的頂級視窗。一個不會被嵌入到父視窗部件的視窗部件叫做頂級視窗部件。通常情況下,頂級視窗部件是有框架和標題欄的視窗(儘管使用了一定的視窗部件標記,建立頂級視窗部件時也可能沒有這些裝飾。)在Qt中,QMainWindow和不同的QDialog的子類是最普通的頂級視窗。
如果是頂級對話方塊,那就基於QDialog建立,如果是主窗體,那就基於QMainWindow,如果不確定,或者有可能作為頂級窗體,或有可能嵌入到其他窗體中,則基於QWidget建立。
當然了,實際中,你還可以基於任何其他部件類來派生。看實際需求了,比如QFrame、QStackedWidget等等。
【轉】QT中QWidget、QDialog及QMainWindow的區別
相關文章
- Qt三大視窗基類的差別QMainWindow QWidget QDialogQTAI
- Qt QWidget Must construct a QApplication before a QWidgetQTStructAPP
- PyQt5 GUI程式設計(QMainWindow與QWidget模組結合使用)QTGUI程式設計AI
- Qt中常用的對話方塊總結QDialogQT
- QWidget體系與QGraphicsWidget體系之間的區別
- Qt小知識4.QWindow和QWidgetQT
- Mybatis中#{}和${}傳參的區別及#和$的區別小結MyBatis
- (轉)ORACLE 中IN和EXISTS的區別Oracle
- CSS中的class與id區別及用法CSS
- JavaScript中的var、let 及 const 區別JavaScript
- DELPHI中的靜態虛擬及動態方法函式的區別。 (轉)函式
- Qt 資料型別的轉換QT資料型別
- 轉 shell中$(( )) 與 $( ) 還有${ }的區別
- Python中eval與exec的使用及區別Python
- Java中HashMap,LinkedHashMap,TreeMap的區別[轉]JavaHashMap
- 在Oracle中session和process的區別(轉)OracleSession
- 【轉】C#中virtual和abstract的區別C#
- java中list、set和map 的區別(轉)Java
- [轉]IPTABLES中SNAT和MASQUERADE的區別
- MFC中OnDraw與OnPaint的區別 (轉載)AI
- Qt - 座標系及轉換QT
- hive中round、floor、ceil區別及用法Hive
- jquery物件和DOM物件的區別及互相轉化jQuery物件
- 子查詢中的IN與EXISTS的區別(轉)
- 【轉】Session ID/session token 及和cookie區別SessionCookie
- [轉]Apache與Tomcat 區別及聯絡ApacheTomcat
- PHP 中 include 和 require 的概要及區別介紹PHPUI
- Java中啟動執行緒的方式及區別Java執行緒
- C#中continue、return、break的區別及作用C#
- Vue中computed和watch的區別(轉載)Vue
- Linux中tty、pty、pts的概念區別(轉)Linux
- C++ 中四種強制型別轉換的區別C++型別
- Qt中對QString 型別物件的分割QT型別物件
- json與gson工具轉換案例及區別JSON
- scala中:: , +:, :+, :::, +++的區別
- JavaScript中的“=、==、===”區別JavaScript
- MySQL 中 VARCHAR 最大長度及 CHAR 和 VARCHAR 的區別MySql
- Java Web中requset,session,application 的作用域及區別JavaWebSessionAPP