1. 程式人生 > >Qt中QMainWindow物件設定layout的方法

Qt中QMainWindow物件設定layout的方法

QMainWindow並沒有setLayout()函式,因此不能使用setLayout()函式來設定layout,需要使用間接的方法。 
需要做的只是先定義一個QWidget物件,然後使用QMainWindow::setCentralWidget()函式來將該QWidget物件設定為Central Widget,然後使用該QWidget物件的setLayout()函式,就可以了,不過後續物件都要被新增到該QWidget物件下的layout中。 
QMainWindow為什麼會有這樣奇怪的特性呢,原因是這樣的:QMainWindow類實際上有一個預設的layout,示意如下: 
 QMainWindow
(來自Qt Assistant),所以就不能重新設定layout了,你可以使用setXXX()函式來設定layout中的這些物件,比如說setCentralWidget()函式就設定了它的Central Widget物件。 
個人認為,如果你寫的視窗並不遵循QMainWindow的模式,不如直接使用其他更為簡單的類來寫視窗。