一、目的
1、提高复用性,如果一个界面要进行较大的变换,则整个UI会非常的庞大,如果换成多个ui,每次通过load方法加载,则可以分成多个小ui,而这些小的ui又可以被其他的CPP使用。
2、一定程度上替代自己封装组件。
3、可以提高编译速度。
二、使用方法
准备:.pro里加上QT += uitools
引入#include <QtUiTools>
1、将ui文件作为资源文件引入,略。
2、创建同名C++类,包括CPP和H
3、在CPP的构造函数中使用loader.load方法加载这个UI。
QUiLoader loader;
QFile file(":/ui/boxform.ui");
if (file.open(QFile::ReadOnly)) {
//this_widget_ 是成员
this_widget_ = loader.load(&file, this);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->setMargin(0);
layout->addWidget(this_widget_);
setLayout(layout);
file.close();
} else {
logger()->error(tr("Failed to load labelform.ui file."));
}