Qt动态加载ui文件(实现加载客户自定义的一些widget,如QVTKWidget)

  利用Qt动态加载ui文件主要是实现ui设计和软件设计的分离,ui只需要向编程人员提供各个控件名称即可。这样做可以满足软件设计后期,由于客户需求,ui风格多变的情况下,不影响编程人员的开发。

具体实现:网上资料较多,一般利用QuiLoader ,只能加载Qwidget 或者QFrame,以下代码主要实现加载的Qwidget 窗口的子窗口有一些用户自定义的Widget ,这里我想加载的是QVTKWidget

 

 

QString uiFilePath =
"E:\\TASK\\CTSoftware\\QtGUI\\heartgui.ui";

QString uiDir =
"E:\\TASK\\CTSoftware\\QtGUI";
QString pluinPath = "%Qdir%\\plugins\\designer";
QUiLoader uiLoader ;

//****************************//
uiLoader.addPluginPath(pluinPath);  //设置自定义窗口widget路径

 

QFile file(uiFilePath);
const QDir &workDir(uiDir);
file.open(QIODevice::ReadOnly);
uiLoader.setWorkingDirectory(workDir);
ui = uiLoader.load(&file,this);
file.close();

posted @ 2015-11-06 09:14  Andy1314  阅读(2133)  评论(0)    收藏  举报