解决使用VS2015新建QT界面之后cpp文件提示“不允许使用不完整的类型”问题

解决使用VS2015新建QT界面之后cpp文件提示“不允许使用不完整的类型”问题

问题描述

在这里插入图片描述

分析解决过程

检查了半天跟另外一个文件的结构是一模一样的,只是类名不一样,网上找了很多方式都不行,真是让我脑热。
后面我决定使用排除法试试,发现挺得劲,一下就试出问题所在了。
如图:我注释了另外一个跟它结构一样的但没有提示错误的文件中的类引用: #include "ui_NIUBITOOL.h"
在这里插入图片描述
然后切到它对应的cpp文件,哦嗬!他娘的竟然马上出现了一样的问题。我心里一阵波澜,知道原因就好说好多了。
在这里插入图片描述
这个文件是存放在项目目录的GeneratedFile文件夹里的,进去目录发现确实没有ui_CONNECTCFG.h文件,然后我找了个方法在VS2015中右键这个ui文件编译了一个
在这里插入图片描述
发现还是不行,当时我就气炸了,有点想放弃直接使用Qt Creator重新搞,后来冷静地想想,还是搞搞,解决了顺带多一篇博客,反正我在这上面没找到方法。

在这里插入图片描述

再次对比了一下跟没有问题的那个界面的差异,发现缺少的文件中的内容只需要修改个类名就可以了,把它们复制出来重新命名,将里面的类名全部更改为CONNECTCFG,文件分别是CONNECTCFG.qrc、qrc_CONNECTCFG.cpp两个文件。如下两个截图位置:
在这里插入图片描述
在这里插入图片描述
搞完之后,还是不行!我懵逼了!全都一样了啊!
在这里插入图片描述
好吧三分钟之后我又冷静了,还有一个一定不一样的文件但它们结构绝对一样的,直接对比两个ui开头的头文件结构。打开之后我震惊了,我在cpp文件里引用的是"ui_CONNECTCFG.h",ui_CONNECTCFG.h文件里class 的是竟然是Form,为毛?

在这里插入图片描述
打开设计界面之后发现,果然!这个对象名竟然不会自己生成跟我命名的文件一样

在这里插入图片描述
然后修改对象名之后保存,在VS2015重新编译一下ui_CONNECTCFG.u文件,再回到目录检查生成ui文件类名是否正确。
在这里插入图片描述
搞了这么多事情,重新生成以下解决方案,最后解决问题,编译通过。
在这里插入图片描述

总结

最后整理了一下步骤其实很简单,就是读不到那个ui_xxx.h文件:
1.新增ui_xxxx.h界面文件后,确认你要引用类名,它默认生成是Form,修改对象名文件同名xxx保存(其实默认Form也没问题,但是引用的时候需要#include “ui_Form.h”,不推荐)
2.在VS2015解决方案视图右键新添加的ui_xxx.h文件>>选择编译
3.检查项目目录/GeneratedFile文件夹下是否生成ui_xxx.h文件并打开检查类名是否跟引用的、Qt设计界面的对象名一致,三个地方都一致的话在VS2015菜单>>生成>>重新生成解决方案就ok了。
实在还不行按照截图的傻瓜式操作肯定可以。

归根问题就是引用的类不对,往这个方向查问题。
知识还不够丰富,如果完全了解这个东西,大可不必多费周章。

  • 36
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值