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

2023-11-13

解决使用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了。
实在还不行按照截图的傻瓜式操作肯定可以。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co

随机推荐

  • 如何通过域名访问服务器里的文件,如何通过域名访问云服务器

    如何通过域名访问云服务器 内容精选 换一换 您既可以通过内网域名访问网站 也可以通过公网域名访问网站 同时 您也可以设置域名使其既支持内网解析也支持公网解析 华为云的内网DNS功能实现VPC内的内网解析 并且会将对公网域名的解析请求转发到公
  • Non-Euclidean geometry

    In mathematics non Euclidean geometry consists of two geometries based on axioms closely related to those that specify E
  • 【Windows基础】Windows基本命令学习

    查看目录帮助 查看命令帮助 命令 例如 cd 可以查看语法和作用 C Users gt cd 显示当前目录名或改变当前目录 CHDIR D drive path CHDIR CD D drive path CD 指定要改成父目录 键入 CD
  • Vue3后台管理系统(十九)路由vue-router

    前言 这一章非常重要 首先我们要思考 路由涉及到了哪些东西 它要生成URL地址与vue组件的路由关系 它要根据当前用户的角色与菜单来决定要生成哪些地址路由 它要把静态路由和后端传来的动态菜单路由结合在一起 有些路由不需要权限控制 白名单 比
  • python调用数据集mnist_MNIST数据集下载训练测试Python,mnist,pytorch

    1 下载 可以使用 train set mnist MNIST data train True download True 但是速度慢一般无法下载 官网下载也较慢 使用方法 MNIST processed test pt training
  • qt界面之设置QPushbutton的大小(代码)

    其实设置Qpushbutton的大小的方式有两种 一种是通过代码的方式 另一种就是通过UI界面的形式进行设置 一 通常比较常见的通过UI界面中来进行设置 一般默认的情况下设置如图所示 修改大小之后 如图所示 这样就固定住了大小 二 通过代码
  • Opencv的使用小教程4——HOG特征及其python代码实现

    Opencv的使用小教程4 HOG特征及其python代码实现 hog特征是什么 hog的实现步骤 梯度直方图的概念 python代码实现 1 使用scikit image库 2 源码代码实现 好好学习噢 hog特征是什么 HOG特征即方向
  • R语言 读取世界所有国家的人均GDP

    要读取世界上所有国家的人均GDP 可以使用R中的WDI包 World Development Indicators 以下是一些示例代码 可以读取2019年所有国家的人均GDP数据 首先需要安装并加载WDI包 install packages
  • Json3种解析方式

    1 导包 implementation com google code gson gson 2 8 6 implementation com alibaba fastjson 1 2 73 2 使用 package com example
  • 删除 Ceph 集群里的某个节点的全部OSD (2 of 3)

    前言 如果你的ceph集群的数据只存在在该节点的所有OSD上 删除该节点的OSD会导致数据丢失 如果集群配置了冗余replication或者EC 需要做pg 修复 出于数据安全考虑 请一定 一定 一定 备份好你要删除的OSD上的数据 这里一
  • css学习——三种基本选择器

    选择器 选择某一个或某一类元素 基本选择器 标签选择器 标签选择器会选择页面上所有的这个标签的元素 类选择器 class
  • C语言经典100例题(55)--从一个整数a中把从右端开始的4-7位取出来

    目录 题目 问题分析 右移操作符 左移操作符 方法一 方法二 运行结果 题目 用c语言从一个整数a中把从右端开始的4 7位取出来 问题分析 右移操作符 右移操作符是一种位运算符 用于将二进制数向右移动指定的位数 它通常用符号 gt gt 表
  • 哪一类功率放大电路效率最高_让我们来复习一下功率放大电路与集成运算放大电路...

    功率放大电路 一 功率放大电路的三种工作状态 1 甲类工作状态 导通角为360度 ICQ大 管耗大 效率低 2 乙类工作状态 ICQ 0 导通角为180度 效率高 失真大 3 甲乙类工作状态 导通角为180o 360o 效率较高 失真较大
  • springboot整合Thymeleaf

    springboot的简化配置 在springboot中 视图解析器等注册都不需要我们做了 因为springboot都默认帮我们做了 只要我们将Thymeleaf maven依赖添加到项目的pom文件下 就启用了SpringBoot的自动配
  • go语言的Hash算法

    Hash project main go package main import C import crypto md5 crypto sha1 crypto sha256 crypto sha512 io ioutil unsafe fm
  • Mac 系统升级后 idea 提示Cannot run Git Couldn‘t install Git

    终端输入 git hepl 报错 xcrun error invalid active developer path Library Developer CommandLineTools missing xcrun at Library D
  • 函数的认识

    文章目录 函数是什么 库函数 自定义函数 函数参数 函数调用 函数的嵌套调用和链式访问 函数的声明和定义 函数递归 一 函数是什么 维基百科中对函数的定义 子程序 在计算机科学中 子程序 英语 Subroutine procedure fu
  • 至简原生与webview交互逻辑演示

    var callbackstack var callbackId 0 function getToken callbackId return new Promise rs rj gt window android postToNative
  • Linux系统上安装Vmware Workstation

    系统平台 RHEL6 1 X86 32bit 软件版本 VMware Workstation Full 8 0 0 471780 i386 bundle 说明 适用于其他平台 其他VMware Workstation版本 安装完成后要运行虚
  • 解决使用VS2015新建QT界面之后cpp文件提示“不允许使用不完整的类型”问题

    解决使用VS2015新建QT界面之后cpp文件提示 不允许使用不完整的类型 问题 问题描述 分析解决过程 总结 问题描述 分析解决过程 检查了半天跟另外一个文件的结构是一模一样的 只是类名不一样 网上找了很多方式都不行 真是让我脑热 后面我