qt widgets application 是唯一默认带完整 ui 框架、可直接 show() 出窗口的向导模板;路径和项目名须全英文、无空格;初学者推荐选 qwidget 基类并勾选“generate form”生成 .ui 文件。

Qt Widgets Application 是唯一正经入口
不是所有“新建项目”选项都能生成可运行的窗口程序。Qt Widgets Application 是 Qt Creator 中唯一默认带完整 UI 框架、能直接 show() 出窗口的向导模板。选错类型(比如 Console Application 或 Empty qmake Project)会导致后续要手动补 QApplication、QWidget、.pro 配置,容易漏掉 QT += widgets 导致编译报错 Unknown type 'QMainWindow'。
路径和项目名不能含中文或空格
这是最常卡住新手的地方:哪怕只是把项目建在 C:\我的项目\test 这种路径下,qmake 解析 .pro 文件时会失败,构建日志里出现一堆乱码或 error: cannot find -lqt5core 类错误,但根本不会提示“中文路径不支持”。
- 项目名称只能用英文、数字、下划线,比如
MyWidgetApp,不能是我的第一个程序 - 保存路径必须全英文,推荐类似
E:/qt_projects/mywidget这种格式 - 如果已建错,别改文件夹名再重载——要删掉整个目录,重新走向导
基类选 QWidget 还是 QMainWindow?
取决于你是否需要菜单栏、工具栏、状态栏这些“主窗口标配”。QMainWindow 自带这些区域,适合做主程序窗口;QWidget 是最轻量的容器,适合弹窗、子面板、自定义控件预览等场景。两者都支持拖放 UI 设计器(.ui 文件),区别只在默认布局结构。
- 刚入门建议选
QWidget:没多余部件干扰,代码干净,show()后就是个空白方框 - 选
QMainWindow后,mainwindow.ui里会自动带centralWidget区域,往里拖控件才可见 -
QDialog通常用于临时对话框(如设置页、确认弹窗),不推荐作为主窗口基类
UI 文件要不要勾选?
向导最后一步有个 “Generate form” 勾选项,默认开启。它决定是否生成 .ui 文件并关联到主类。关掉它,你就得纯手写 UI(用 new QLabel、setLayout 等),对初学者几乎等于放弃可视化调试。
- 保持勾选:生成
mainwindow.ui,双击就能进 Qt Designer 拖控件 - 不勾选:只有
mainwindow.h和mainwindow.cpp,UI 全靠代码构造 - 注意:
.ui文件不是必须的,但它和uic工具链绑定,关了就得自己调用setupUi(this)或手动 new 控件
真正容易被忽略的是:一旦用了 .ui,就必须确保 mainwindow.cpp 里有 ui->setupUi(this) 调用,且 ui 成员变量由 Ui::MainWindow 类型声明——这些是向导自动生成的,删了就黑屏。











