Qt Creator新建项目无法运行的主因是Kit配置缺失,即编译器、Qt版本、调试器三者未正确关联;.ui文件打不开则因未关联Design Editor或Kit未启用Qt Designer支持。

Qt Creator 不是“装完就能写 UI”的工具,它依赖编译器、Qt 库、构建系统三者协同工作;缺一不可,否则新建项目后点运行会直接报错 Cannot run executable 或卡在 Building... 不动。
为什么新建 Qt Widgets Application 后无法运行
常见现象是点击绿色三角形按钮后,输出面板只显示 “Starting” 就停滞,或弹出警告 “No valid kits found”。这不是代码问题,而是 Kit 配置缺失。
- Kit 是 Qt Creator 内部对“编译器 + Qt 版本 + 调试器”组合的封装,必须手动确认是否已自动识别
- Windows 上若装的是 MinGW 版 Qt,默认可能找不到
g++.exe,路径含空格(如C:\Program Files\...)会导致解析失败 - Linux/macOS 下未安装
g++或clang++,或没把qmake加入 PATH,Kit 也会灰色不可用 - 检查路径:进入
Tools > Options > Kits,看 “Compiler” 和 “Qt version” 是否都有绿色对勾
ui 文件双击打不开设计界面,只显示 XML 源码
这是 Qt Creator 没把 .ui 文件关联到 Qt Designer 模式,不是文件损坏。
- 右键点击
mainwindow.ui→ 选择Open With > Design Editor(不是 Text Editor) - 如果菜单里没有该选项,说明当前 Kit 未启用 Qt Designer 支持 —— 回到
Options > Kits,确认所选 Qt 版本包含Qt Designer组件(通常默认勾选) - 手动触发设计模式:按快捷键
Ctrl+Shift+D(Windows/Linux)或Cmd+Shift+D(macOS) - 注意:.ui 文件必须在项目内且被
.pro或CMakeLists.txt正确引用,否则 Designer 不会激活
信号与槽连接后点击按钮没反应
最常踩的坑是 connect 写错、对象生命周期不对、或者 UI 控件指针为空。
- 检查
ui->setupUi(this)是否在构造函数中调用 —— 如果漏掉这句,ui->pushButton就是空指针 - 使用现代语法连接时,确保 sender 和 receiver 都还活着:
QObject::connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::onButtonClicked) - 旧语法(字符串形式)已不推荐:
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(onButtonClicked()))—— 它不报编译错误,但拼写错一个字母就静默失效 - 调试技巧:在槽函数第一行加
qDebug() ,看输出面板是否有打印
修改 ui 文件后界面上的控件不更新
Qt Creator 不会实时刷新运行中的窗口,UI 变更必须重新编译才能生效,且要注意 moc 机制是否触发。
- 改完
.ui后必须保存(Ctrl+S),否则uic工具不会生成新代码 - 确保项目使用的是 qmake 构建系统(不是纯 CMake)—— qmake 会在构建时自动调用
uic把.ui转成ui_mainwindow.h - 如果用了 CMake,需手动在
CMakeLists.txt中添加qt_add_resources或qt_wrap_ui(Qt6 起改为qt_add_executable自动处理) - 极端情况可尝试 Clean Project → Rebuild,强制重新生成所有中间文件
真正卡住新手的,从来不是语法或控件拖拽,而是 Kit 配置、构建流程和对象生命周期这三层隐性依赖。每一步都得亲眼确认状态,而不是凭感觉点下一步。


















