QT動(dòng)態(tài)加載UI文件注意事項(xiàng)
在最新的QT4版本中(QT4.1以上)加入了動(dòng)態(tài)載入U(xiǎn)I文件的功能。使用如下
QUiLoader loader;
QFile file("calculator.ui");
file.open(QFile::ReadOnly);
QWidget *formWidget = loader.load(&file, this);
file.close();
QMetaObject::connectSlotsByName(this);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(formWidget);
setLayout(layout);
setWindowTitle(tr("Calculator Builder"));
以上代碼是放在從QWidget派生的自定義類中的構(gòu)造函數(shù)中的。這樣調(diào)用自定義類的show函數(shù)就會(huì)顯示用designer設(shè)計(jì)好的界面。
經(jīng)過(guò)使用和觀察,發(fā)現(xiàn)這個(gè)動(dòng)態(tài)加載對(duì)UI文件是有限制要求的,不過(guò)在官方文檔中并未找到相關(guān)說(shuō)明,因此也只能是作為一種總結(jié)了。也許官方正在打算改進(jìn)。
限制1:UI必須是QWidget窗體或QFrame部件,不能是其他類型,如QDialog,QMainWindow
限制2:UI的頂層窗體必須具有布局,也就是窗體的布局不能是“打破布局”這一項(xiàng)。
如果不滿足上述兩個(gè)限制,QUiLoader是不能加載這樣的UI文件的。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。