代碼繼承 `QLCDNumber`,編譯報錯「`QLCDNumber` 未定義 / 找不到類型」。
缺少頭文件引用:`QLCDNumber` 定義在 `
// digiclock.h
#ifndef DIGICLOCK_H
#define DIGICLOCK_H
#include // 關鍵:單獨引入,或 #include
#include
#include
class DigiClock : public QLCDNumber {
Q_OBJECT
public:
DigiClock(QWidget *parent = nullptr);
protected:
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
private slots:
void showTime();
private:
QTimer *timer;
QPoint dragPosition;
bool showColon = true;
};
#endif // DIGICLOCK_H
| 類別 | 推薦頭文件 | 模組 |
|---|---|---|
| QLCDNumber | `#include | QtWidgets |
| QWidget, QDialog, QMainWindow | `#include | QtWidgets |
| QTimer, QObject, QThread | `#include | QtCore |
| QNetworkAccessManager | `#include | QtNetwork |
| 所有 Widgets 類 | `#include | QtWidgets (整體) |
# .pro
QT += widgets # 必須包含 widgets 模組
# CMakeLists.txt
find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(myapp PRIVATE Qt6::Widgets)
**Qt 編程第一原則:報錯「未定義類型」先查頭文件,報錯「未定義引用」再查 `.pro`/`CMake` 模組鏈接。**