QMainWindow和QWidget的區別

2021-10-04 02:23:42 字數 1306 閱讀 8024

分別以qmainwindow和qwidget為基類建立工程;

qt會自動建立乙個以所選基類為父類的自定義類,自動建立ui檔案,供使用者來使用。**模板也是完全相同,唯一不同的是乙個隱含的檔案:

qwidget下為 #include 「ui_widget.h」

qmainwindow下為 #include 「ui_mainwindow.h」

檢視該檔案,按住ctrl+滑鼠左鍵自動跳轉,提示失敗。因為這個檔案是在編譯時qt自動建立的,在工程建立完成時還不存在。

編譯工程後,發現可以跳轉到該**件。比較這兩個檔案,主要差異在於下面幾行**:

menubar =

newqmenubar

(mainwindow)

;menubar-

>

setobjectname

(qstringliteral

("menubar"))

;mainwindow-

>

setmenubar

(menubar)

;main******* =

newq*******

(mainwindow)

;main*******-

>

setobjectname

(qstringliteral

("main*******"))

;mainwindow-

>

add*******

(main*******)

;centralwidget =

newqwidget

(mainwindow)

;centralwidget-

>

setobjectname

(qstringliteral

("centralwidget"))

;mainwindow-

>

setcentralwidget

(centralwidget)

;statusbar =

newqstatusbar

(mainwindow)

;statusbar-

>

setobjectname

(qstringliteral

("statusbar"))

;mainwindow-

>

setstatusbar

(statusbar)

;

qmainwindow中在setui時自動為使用者建立了乙個選單欄、工具欄、中心視窗和狀態列。而qwidget是沒有這幾點的。

使用QMainWindow進行布局

推薦於2016 06 29 19 12 54 最佳答案 我以前給qwidget或者qdialog設定布局的時候方式很簡單。建立好乙個布局 mainlayout,然後不停地把各個控制項往mainlayout裡面放,最後呼叫setlayout mainlayout 就行了。可是今天在qmainwindo...

QT基礎知識(七)QMainWindow

每乙個程式都有乙個主使用者介面,其他功能都是圍繞主視窗進行的,比如qmainwindow就是qt開發主視窗的基類。比如 通過檢視qt助手,如下 menu bar 選單欄 s 工具欄 dock widgets 懸浮視窗顯示區 central widget 中心主視窗顯示區域 status bar 底部...

QT筆記5 主介面類QMainWindow

qmainwindow為主視窗,包含選單欄 工具欄 狀態列 視窗等部件,繼承自qwidget。qmainwindow為應用程式的使用者介面提供了乙個基本的框架,當我們需要建立乙個功能全面應用程式視窗時一般使用它,如果臨時彈個框或者只需要簡單互動視窗用qdialog就行了。布局圖如下所示 menuba...