PyQt5──在Qt Designer中使用QVideoWidget、QWebEngineView

Shan
Apr 19, 2022

--

雖然 Qt Designer 支持所有標準 Qt widget ,但某些專用 widget 可能無法作為標準來使用,此情形有以下三種原因:

  • 在設計使用者介面時, custom widget 可能無法使用
  • custom widget 可能是使用於特定平台,設計人員可能會在不同平台上開發使用者介面給終端使用者使用
  • custom widget 的 source code 無法使用,或者使用者介面的設計人員由於非技術原因無法使用 widget

在上述的情況下,仍然有可能在應用程序中使用custom widget來設計form。為了做到這件事,我們可以使用 Qt Designer 的widget promotion功能。

簡單來說,在 Qt Designer 沒有把所有的 widget 都顯示出來,因此當我們想使用像是 QWebEngineViewQVideoWidget時,在左方的 Widget Box 中會找不到,如下圖所示:

Widget Box

那有個比較簡單的解決方式是使用 Qt Designer 的widget promotion功能,對右方 Object Inspector 中要改變的 widget 按右鍵選 Promote to ...

Object Inspector

然後會跳出一個 Promoted Widgets 的對話框,在 Promoted class name 的欄位輸入 QVideoWidget,Header file的欄位輸入PyQt5.QtMultimediaWidgets接著按右邊的 Add 按鈕

Promoted Widgets

加入之後選取他然後按對話框下方的 Promote 按鈕

Promoted Widgets

完成後就可以在右方Object Inspector中看到, widget 的 class 已經從 QWidget → QVideoWidget 了!

Object Inspector

QWebEngineView的使用方式也與QVideoWidget相同,過程將Promoted class name 的欄位改成輸入 QWebEngineView,Header file的欄位改成輸入PyQt5.QtWebEngineWidgets即可

Object Inspector

--

--