在QT開發過程中,有時候會遇到這樣的問題,當我們自己創建了一個Layout對象以后,使用QWidget的setLayout方法,將這個Layout對象應用到窗口中的時候,發現窗口上沒有我們添加的控件,比如,QMainWindow就是一個例子,還有QToolBar也是這樣,還有其他的QT預定義的別的窗口類有時候也會遇到這樣的情況。
之所以出現這樣的情況,是因為這個窗口類中,已經有了一個Layout對象了,這時候,當你再setLayout的時候,就是無效的,這是有三個辦法,一個辦法是調用layout()方法,返回這個窗口內部的Layout的對象,然后刪除它,再調用setLayout設置自己的Layout對象,還有一個辦法,就是直接使用這個窗口內部的Layout對象,第三個方法,就是直接創建其子窗口,在這個子窗口中使用Layout對象,如,在QMainWindow中,我們通常創建一個繼承於QWidget的窗口對象,然后調用setCentralWidget方法來安裝這個窗口,然后在這個窗口中使用自己的Layout。
原文鏈接:http://blog.csdn.net/xinzhiyounizhiyouni/article/details/44521501
http://blog.csdn.net/gyhguoge01234/article/details/53561271