VS+Qt解决提升控件后,包含头文件格式不对问题处理

一、前言

VS+Qt 提升控件后,在uic目录下会生成ui相关的初始化文件,对于提升的控件头文件包含的格式为#include<> 而非 #include " " 导致无法找到头文件。如果手动修改为 #include " "相当麻烦,甚至每次编译都要修改一遍,明显是不合适的

二、解决方式

我们需要转变一下思路,我们无法解决Qt自动写成#include<>格式,只要使得#include<> 不会报错即可,那么首先了解一下#include" "和#include <>区别:

#include "headfile.h"引用头文件的搜索顺序为:

  1. 先搜索当前目录
  2. 然后搜索-I指定的目录
  3. 再搜索gcc的环境变量CPLUS_INCLUDE_PATH(C程序使用的是C_INCLUDE_PATH)
  4. 最后搜索gcc的内定目录:/usr/include,/usr/local/include,/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include
  5. 各目录存在相同文件时,先找到哪个使用哪个。

#include <headfile.h>引用头文件的搜索顺序为:

  1. 先搜索-I指定的目录
  2. 然后搜索gcc的环境变量CPLUS_INCLUDE_PATH
  3. 最后搜索gcc的内定目录:/usr/include,/usr/local/include,/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include
  4. 各目录存在相同文件时,先找到哪个使用哪个。

所以,我们只需要将提升后的控件头文件加入的编译器的包含目录内,则使用#include<> 便能够找到。

三、演示

1,创建用于提升的widget

2,主页面选择提升

3,此时主页面编译生成的UIC 文件包含了提升的类头文件,一般情况会报错,说找不到头文件

4,VS配置里面添加 scorepanel的相对路径:..\FigthLandLords

注意:我使用的是相对路径, ..\ 是指配置文件.vcxproj的上一级目录。

5,此时编译能正常通过,这种方式比我上一篇文章,使用替换的方式合理很多,建议使用此方式处理。

相关推荐
wabs6663 分钟前
关于二叉树【力扣572.另一棵树的子树的思考】
数据结构·c++·算法·leetcode·二叉树
SelectDB16 分钟前
快手基于 Apache Doris 千亿多模态检索的实践
大数据·数据库·数据分析
SelectDB22 分钟前
StarRocks 迁移至 Apache Doris 完整指南:三步完成结构、数据与业务平滑切换
大数据·数据库·数据分析
这个DBA有点耶22 分钟前
InnoDB索引组织表下,复合主键和自增主键的物理存储差异与选型对比
数据库·mysql·架构
其实防守也摸鱼1 小时前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
风合星语1 小时前
2026 ROS 2 Lyrical C++ 入门(五):Action 实战——任务反馈、取消与超时处理
c++·机器人·ros2·异步编程·lyrical
TDengine (老段)2 小时前
TDengine 常见问题 TOP7
大数据·数据库·时序数据库·常见问题·tdengine·涛思数据
+VX:Fegn08952 小时前
计算机毕业设计|基于java+ vue共享单车信息系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
91刘仁德2 小时前
C++ 继承和多态 设计模式
c语言·c++·笔记
码行山野赴时序归途2 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表