Widget翻譯過來是小部件的意思,Widget、Dialog和MainWindow三者都可以獨立創建用戶界面。QWidget類是所有用戶界面對象的基類,QMainWindow和QDialog其實就是QWidget的子類,唯一有點血緣關系的就是繼承了QWidget類,其余的就沒有什么關系了,的其余子類如下所示:
QAbstractButton,QAbstractSlider,QAbstractSpinBox,QCalendarWidget,QComboBox,QDesktopWidget,QDialogQDialogButtonBox,QDockWidget,QFocusFrame,QFrame,QGroupBox,QKeySequenceEdit,QLineEdit,QMainWindow,QMdiSubWindow,QMenu,QMenuBar,QOpenGLWidget,QProgressBar,QRubberBand,QSizeGrip,QSplashScreen,QSplitterHandle,QStatusBar,QTabBar,QTabWidget,QToolBar和QWizardPage
官方文檔
QMainWindow類:https://doc.qt.io/qt-5/qmainwindow.html
QWidget類:https://doc.qt.io/qt-5/qwidget.html
QDialog類:https://doc.qt.io/qt-5/qdialog.html
Widget(小部件)
小部件是用戶界面的原子:它從窗口系統接收鼠標,鍵盤和其他事件,並在屏幕上繪制自己(繼承了繪制類)。每個小部件都是矩形的,它們按Z順序排序。
小部件包括窗口小部件和非窗口小部件。
1、窗口小部件(可以稱為獨立窗口或者頂級窗口小部件)就是我們創建Qt桌面應用程序時,自動生成的窗口界面,包含標題欄,可以設置標題和圖標,還有什么最大最小化以及退出按鈕,它本身就是父窗口(未嵌入其它窗口)。MainWindow和Dialog以及Dialog的子類都是典型的窗口小部件。
QWidget *parent = 0
2、非窗口小部件是子小部件,它是嵌入在父窗口中的,不能獨立顯示,只能顯示在其父窗口小部件中。Qt Designer中的所有小部件都屬於非窗口小部件,都需要嵌入到父窗口小部件中,用於顯示數據和狀態信息,接收用戶輸入。
MainWindow(主窗口)
主窗口提供了構建應用程序用戶界面的框架。主窗口擁有自己的布局,包括中央區域、菜單欄、工具欄、狀態欄以及Dock小部件,具體分布如下圖所示。布局的中心區域可以被任何類型的小部件占用,也就是我們常用來拖拉控件的區域,其它區域可以沒有,但是不能沒有中央區域。最常見的主窗口就是WPS。稍微大一點的項目就使用QMainWindow來創建,嵌入到主窗口使用QWidget,輔助窗口使用QDialog,如果是內容比較單一的項目,使用QDialog基本上也可以搞定了。
Dialog(對話框)
Dialog(對話框)一般用作輔助窗口,為用戶提供選項並主窗口進行交互,彈出一個對話框,然后選擇“OK”或者“cannel”。此外,Qt也提供了許多現成的標准對話框,可用於標准任務,如文件對話框、字體對話框、顏色對話框、消息對話框等。 對話框又分為模態對話框和非模態對話框。
————————————————
版權聲明:本文為CSDN博主「歐陽磊」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/mars_xiaolei/article/details/89947412