=================================版权声明=================================

版权声明:原创文章 禁止转载 

请通过右侧公告中的“联系邮箱(wlsandwho@foxmail.com)”联系我

勿用于学术性引用。

勿用于商业出版、商业印刷、商业引用以及其他商业用途。                   

 

本文不定期修正完善。

本文链接:http://www.cnblogs.com/wlsandwho/p/8960705.html

耻辱墙:http://www.cnblogs.com/wlsandwho/p/4206472.html

=======================================================================

开发环境Win7 64+VS2015+WDK10+qt-opensource-windows-x86-5.10.1

=======================================================================

创建Qt Widgets Application项目时,出现问题。

很奇怪,在网上并没有找到什么描述和解决方法。

=======================================================================

抱着求真务实的态度,我做了各种尝试。终于试验出一个临时方案。至少能凑合用一下。

=======================================================================

1 创建Qt Widgets Application项目时,去掉Generate form的对勾。记住此时创建的类型。

2 添加新文件,选择Qt Designer Form Class

选择红色框中找出刚才记住的类型,然后选中。

若选择Main Window,则会提示文件已经存在,不用管覆盖就行。

=======================================================================

下面以Widget为例,说一下其余情况。

假设之前工程选择的是QWidget,那么之后要插入的文件应该是:

这里有一个点要注意,MainWindow类型的问题工程创建新文件时默认类名和正常Qt工程中类名相同可以覆盖,QWidget的问题工程修改成Widget后覆盖编译会出错。这里我们不要改,凑合着用Form就行了。

然后再修改main.cpp文件,替换掉原有的代码。

 1 #include "widget.h"
 2 #include <QApplication>
 3 
 4 int main(int argc, char *argv[])
 5 {
 6     QApplication a(argc, argv);
 7     Widget w;
 8     w.show();
 9 
10     return a.exec();
11 }

修改为

 1 #include <form.h>//#include "widget.h"
 2 #include <QApplication>
 3 
 4 int main(int argc, char *argv[])
 5 {
 6     QApplication a(argc, argv);
 7     Form f;//Widget w;
 8     f.show();//w.show();
 9 
10     return a.exec();
11 }

至此可以像正常工程一般开发了。

=======================================================================

Linux版本不存在这个问题。