“No valid kits found”提示表明Qt Creator未成功关联编译器、Qt版本和调试器三者;需依次检查并手动配置Compilers、Qt Versions及Kits,确保路径正确、ABI兼容且无中文/空格。

Qt Creator 不是装完就能直接写可用 GUI 的工具,它依赖编译器、Qt 库、构建系统三者正确联动;多数新手卡在“项目能建但运行空白”或“UI 改了却没生效”,问题几乎都出在这三者的配置错位上。
Qt Creator 启动后找不到可用 Kit 怎么办
这是最常遇到的阻塞点:新建项目时提示 “No valid kits found”,或者 Kit 下拉框为空。根本原因是 Qt Creator 没法把“编译器 + 调试器 + Qt 版本”这三样串起来。
- 先确认是否真装了 Qt 库(不只是 Qt Creator):Windows 上检查安装路径下是否有
Qt\6.5.0\mingw_64这类目录;Linux/macOS 检查~/Qt/6.5.0或/usr/lib/x86_64-linux-gnu/qt6 - 打开
Tools > Options > Kits > Compilers,看 GCC/MSVC/Clang 是否被识别;若未识别,手动添加路径(如 Windows 下MinGW 11.2.0\bin\g++.exe) - 再进
Kits > Qt Versions,点击 “Add”,指向qmake.exe(不是cmake),典型路径:Qt\6.5.0\mingw_64\bin\qmake.exe - 最后回到
Kits标签页,点 “Add”,名称随便填,Compiler 选刚配好的,Qt version 选刚加的,Debugger 一般自动匹配;Kit 名称别带空格或中文
新建 Qt Widgets Application 后 UI 不显示或报错
生成项目后点运行,窗口一闪而过、黑屏、或报 QApplication: invalid style override passed,大概率是 main.cpp 或 .ui 文件没走对流程。
组合式C++代码评审方案,融合静态分析、AI推理、多轮迭代评审和C++专项检查,适用于PR审查、增量代码审查、全项目评审和代码质量评分,触发词包括review cpp、cpp代码评审、C++review、代码审查。
-
main.cpp必须调用app.exec(),且不能漏掉;常见错误是误删了这行,或把它放在return后面 - 如果用了
QWidget或QMainWindow,确保构造函数里调用了ui->setupUi(this),且ui是通过new Ui::XXX初始化的 - 双击
mainwindow.ui进 Designer 编辑后,必须保存(Ctrl+S),否则uic工具不会重新生成ui_mainwindow.h,代码里引用的就是旧版结构 - 若改了
.ui文件里的控件 objectName(比如把pushButton改成btnSubmit),对应 cpp 里用ui->btnSubmit访问——名字必须完全一致,大小写敏感
信号与槽连不上:connect() 没反应
按钮点了没输出、菜单项触发不了函数,QObject::connect 看似成功但实际无效,原因往往藏在元对象系统或参数匹配上。
- 发送方和接收方类都必须继承自
QObject,且头文件中声明类时第一行要加Q_OBJECT宏(否则 moc 不生成元信息) - 使用新语法
connect(sender, &Class::signal, receiver, &Class::slot)时,确保 signal 和 slot 的参数类型严格一致;比如&QPushButton::clicked是无参信号,不能连到带参的槽 - 如果槽函数是 lambda,捕获列表别写
[this]后又在 lambda 里用this->xxx——此时this可能已析构;改用[weak = QPointer<qobject>(this)]</qobject>更安全 - 检查对象生命周期:若 sender 或 receiver 在 connect 后被 delete,连接自动失效;常见于局部变量创建的 widget 没 parent,run 出作用域就销毁
qmake 项目里改了 .pro 文件却不生效
加了 QT += sql 却 still get “undefined reference to `QSqlDatabase::addDatabase`”,或新增源文件不参与编译,说明 qmake 没重读配置。
- 改完
.pro文件后,必须右键项目 → “Run qmake”,不能只点 “Build”;否则缓存的 Makefile 不更新 -
SOURCES += xxx.cpp和HEADERS += xxx.h路径要相对项目根目录写,不能用绝对路径;推荐全用 Unix 风格斜杠/,Windows 下也兼容 - 如果用了
CONFIG += c++17却编译报错不支持 auto,说明 compiler kit 没启用对应标准——得去Projects > Build > Compiler > C++ Language手动设为 C++17 - 删除
.pro.user文件可重置所有构建配置(包括 Kit、构建目录),适合彻底清理异常状态;它不参与版本控制,删了无害
真正卡住人的从来不是某个函数怎么写,而是 Qt 的隐式依赖链:qmake 依赖 .pro,.pro 依赖 Qt 版本,Qt 版本依赖编译器 ABI,编译器又依赖调试器符号格式——任意一环断开,现象都是“什么都没做错,但它就是不动”。动手前先跑通 Kit 配置,比写一百行 UI 代码都关键。

















