VS+Qt QUiLoader动态加载.ui文件
QUiLoader uiLoader; QFile file(":/QtDemo/qtdemo.ui"); file.open(QFile::ReadOnly); QWidget* ui = uiLoader.load(&file); file.close();
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(ui);
setLayout(layout);
以上实现从.ui文件读取出ui界面并显示。此时ui中的控件并不能用->直接读取。
应用类似
ui->findChild<QPushButton*>("pushButton");
的形式读取到名为“pushButton”的对象指针,进而可以进行.ui文件中的控件使用。
补充:
QT5中使用QUiLoader要额外添加附加依赖项Qt5UiToolsd.lib。方法为:
VS下 项目->属性->链接器->输入->附加依赖项。尾部添加即可