关于Qt下动态加载对话框(ui文件)

今天按照C++ Gui qt4编程书上介绍的动态加载对话框的时候,自己走进了一个误区:

代码:

QUiLoader ul;
QFile file("a.ui");
QWidget * wd = ul.load(&file);
if(wd)
    wd->show();

出现如下错误:

Designer: An error has occurred while reading the UI file at line 1, column 0: 
Premature end of document.

最后发现自己只是将a.ui文件放到了编译目录,而没有放到可执行文件所在的目录(QtCreator的映射机制)。
然后我将a.ui文件放到debug目录下,就正常了!

经过实验发现:以下方法是可以的!

1.加载文件的时候,使用资源模式加载ui文件 

QFile file(":/res/a.ui");

2.就是将ui文件和可执行文件同目录

3.加载文件的时候指定路径

原文地址:https://www.cnblogs.com/justwake/p/2975213.html