关于自定义控件,头文件找不到问题的解决办法

在ui文件中使用控件提升的时候,突然发现ui_xxxx.h竟然报错了,

这在之前是没有碰到过,苦思过后认为是环境变量的问题,因为现在正在用的构建套件是 mingw的,但在此之前我一直用的是msvc,并且环境变量的配置也是MSVC,如图:

于是带着尝试的态度,将环境变量改为mingw的,再次打开QtCreator,发现结果还是一样,仍然报错。

再到后来根据GPT的说法,尝试将头文件的路径改为绝对路径。留下:

#include "F:\code_review\Qt-WorkSpace\fight\KuGouApp\GLTabWidget.h"

现在确实没有报错,但新的问题是这个路径仅仅能在自己的电脑上使用,这就很不方便。必须要使用相对路径

#include "./../../../../GLTabWidget.h"

这样也没有报错,能够成功运行,但是这样不够美观。

经过网上查找证明需要在CMake文件中添加头文件目录 ,在CMake中添加下面这段就可以解决了。

INCLUDE_DIRECTORIES(
${PROJECT_SOURCE_DIR}
)

出现问题的原因是Qt creator通过ui文件生成的程序和存放头文件的目录不在一起,但是生成的程序里会在生成目录下找头文件,所以肯定是找不到的。

相关推荐
CodeMaker8089 分钟前
规则更规范,应用却起不来:我重新理解了 Qt Agent Skills
qt
楚莫识1 小时前
Qt show()、raise()、activateWindow() 调用顺序区别
qt·pyqt
励志不掉头发的内向程序员1 小时前
【LibreCAD 2D架构】从 addHistory 到 RS_UndoCycle:LibreCAD 里的两套 History 与撤销机制
开发语言·c++·qt·学习·系统架构
kaixin_learn_qt_ing13 小时前
【银河麒麟下】 安装达梦数据库 + 使用Qt访问达梦数据库
qt
mengzhi啊13 小时前
缓存类CacheDataManager把临时数据存入json。做成插件·
qt·缓存·json
尘客-追梦14 小时前
Day 01:插件化之前,先看清 ABI 这堵墙
开发语言·c++·qt
Quz17 小时前
QML SwipeView:实现一个简单的图片浏览器
qt
Quz17 小时前
QML SwipeView:标签导航 与 Loader 懒加载
qt
神仙别闹1 天前
基于 QT(C++)开发的地铁换乘系统
数据库·c++·qt
C++ 老炮儿的技术栈1 天前
西门子 S7 常用存储区(I/Q/M/T/C/DB/PI/PQ)
linux·开发语言·c++·windows·qt·io