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

在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文件生成的程序和存放头文件的目录不在一起,但是生成的程序里会在生成目录下找头文件,所以肯定是找不到的。

相关推荐
血不热了4 小时前
Qt:智能指针QScopedPointer 的使用(以及如何写一个QScopedPointer )
开发语言·qt
血不热了5 小时前
Qt:实现单例模式
qt·单例模式
草上爬5 小时前
Qt优秀开源项目之二十三:QSimpleUpdater
开发语言·qt·qsimpleupdater·自动升级
wkd_0075 小时前
【Qt | QLineEdit】Qt 中使 QLineEdit 响应 鼠标单击、双击事件 的两个方法
qt·qlineedit·鼠标双击·鼠标单击
yupeizhou7 小时前
Day 72
qt
Prejudices17 小时前
在 Qt 中使用中文
开发语言·c++·qt
码力码力我爱你18 小时前
Vue Application exit (SharedArrayBuffer is not defined)
linux·前端·javascript·qt·vue·wasm·webassembly
ljp_nan20 小时前
Qt --- 信号和信号槽
开发语言·qt
牵牛老人1 天前
Qt技巧(三)编辑框嵌入按钮,系统位数判断,判断某对象是否属于某种类,控件取句柄,支持4K,巧用QEventLoop,QWidget的窗体样式
开发语言·qt
十启树1 天前
用Qt 对接‌百度语音识别接口
人工智能·qt·百度·语音识别