http://blog.csdn.net/e5max/article/details/9872309
除了在编译时处理ui文件外,Qt还提供了在运行时动态加载ui文件的机制。通过QtUiTools模块的QUiLoader可以在运行时加载ui文件。
加载ui文件的方式如以下代码所示:
- QWidget* TextFinder::loadUiFile()
- {
- QUiLoader loader;
- QFile file(":/forms/textfinder.ui"); // 文件名可以是绝对路径或相对于应用程序的相对路径
- file.open(QFile::ReadOnly);
- QWidget *formWidget = loader.load(&file, this);
- file.close();
- return formWidget;
- }
QWidget* TextFinder::loadUiFile()
{
QUiLoader loader;
QFile file(":/forms/textfinder.ui"); // 文件名可以是绝对路径或相对于应用程序的相对路径
file.open(QFile::ReadOnly);
QWidget *formWidget = loader.load(&file, this);
file.close();
return formWidget;
}
使用方式:
- ui_lineEdit = qFindChild<QLineEdit*>(formWidget, "lineEdit"); // 需要指定对象的名字QUiLoader类放在一个独立的库中。