对于Qt的动态加载ui界面到指定位置方法
此处加载方法是往容器里面加载,例如:QWidget
pro文件中必须添加
CONFIG += uitools
否则会出错
.h文件
#include <QWidget>
#include <QtUiTools/QtUiTools>
#include <QFile>
普通的加载方法:
QUiLoader loader;
QFile file(":/forms/third.ui");
file.open(QFile::ReadOnly);
QWidget *third = loader.load(&file);
file.close();
third->show()
导入时要注意ui文件的位置,因为动态加载ui界面,ui界面必须在生成文件下面。
还要注意QWidget的名字,方便findchild找到需要加载的容器。
QString strPath = QDir::currentPath() + "/UI/xxx.ui";
qDebug()<<strPath;
QFile contentFile(strPath);
QUiLoader loader;
contentFile.open(QFile::ReadOnly);
contentUI = loader.load(&contentFile);
contentFile.close();
contentUI->setWindowFlag(Qt::FramelessWindowHint);
contentUI->setParent(this->findChild<QWidget*>("contentArea"));
this->findChild<QWidget*>("contentArea")->resize(contentUI->width(),contentUI->height());
contentUI->show();