今天按照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.加载文件的时候指定路径