HLed:繼承 QWidget 的 LED 指示燈HBaseSpinBox:繼承 QSpinBox 的可變進制輸入框HLabel:繼承 QLabel 的可發射雙擊信號標籤包含頭文件,像標準控件一樣實例化,零差異。
QWidget/QSpinBox/QLabel).ui 記錄提升資訊| 特性 | 提升法 | 插件法 |
|---|---|---|
| 類名/頭文件 | 手動輸入 | 插件提供 name()/includeFile() |
| 設計時外觀 | 顯示基類(替身) | 顯示真實控件(需實現 createWidget()) |
| 屬性編輯器 | 手動添加動態屬性 | 自動識別並顯示 |
生成 .ui | 含提升標記 | 含插件標記 |
uic 處理 | 生成提升代碼 | 生成相同代碼,插件不參與編譯 |
「歸根到底,插件法和提升法沒有本質區別。二者都只是生成 .ui 文件,而這個文件的後續使用與插件無關。」
提升時可任意選擇基類作為替身:
HDoubleSpinBox 繼承 QStackedWidget,但想在 Designer 看到 QDoubleSpinBox → 提升時選 QDoubleSpinBox 作為基類HLabelButton 繼承 QLabel,想看到 QToolButton → 提升時選 QToolButton插件法同理:在 createWidget() 返回想顯示的替身控件。
.ui → uic → ui_*.h → 編譯鏈接