Qt 5/6 專案編譯時提示:
QLabel: No such file or directory
或類似 QWidget、QPushButton 等 Widgets 模塊類找不到。
Qt 5 將 GUI 組件從核心模塊剝離為獨立 widgets 模塊,.pro 文件需顯式聲明依賴。
在專案 .pro 文件中添加:
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
greaterThan(QT_MAJOR_VERSION, 4):Qt 主版本號 > 4(即 Qt 5/6)時生效QT += widgets:鏈接 QtWidgets 庫,包含 QLabel、QWidget、QPushButton 等所有控件類QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = MyApp TEMPLATE = app SOURCES += main.cpp mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui
| 模塊 | 包含類示例 | 適用版本 |
|---|---|---|
| core | QObject, QString, QFile, QThread | Qt 4/5/6 |
| gui | QPainter, QImage, QFont, QColor | Qt 4/5/6 |
| widgets | QLabel, QPushButton, QMainWindow, QDialog | Qt 5/6 |
| network | QTcpSocket, QNetworkAccessManager | Qt 4/5/6 |
| sql | QSqlDatabase, QSqlQuery | Qt 4/5/6 |
添加該行後執行 qmake → 重新構建,錯誤即刻消失。