Skip to main content
 首页 » 编程设计

python之如何在 Python QT Designer 中插入 Web 浏览器

2024年12月31日36langtianya

我在 QT Designer 5 中创建了一个简单的用户界面,并希望包含一个显示网页的小部件。我使用以下代码将 ui 文件与 python 一起使用:

from PyQt5 import uic, QtWidgets 
import sys 
 
app = QtWidgets.QApplication(sys.argv) 
window = uic.loadUi("test.ui") 
window.show() 
sys.exit(app.exec_()) 

似乎没有可用于在 QT Designer 中插入 Web 浏览器小部件的小部件,因此我正在寻找一个小部件来实现它,方法是使用类或其他东西并将小部件添加到已在 Designer 中创建的界面。

请您参考如下方法:

一个简单的解决方案是使用QWebEngineView,在我的例子中,我可以在 Qt Designer 中找到它:

但如果你没有它,也没有问题,因为有一个小部件可以推广。在 previous answer我指出了它是如何用 QVideoWidget 完成的,但在你的情况下你应该只改变

Promoted class name: QWebEngineView 
Header file: PyQt5.QtWebEngineWidgets 

测试.ui

<?xml version="1.0" encoding="UTF-8"?> 
<ui version="4.0"> 
 <class>Form</class> 
 <widget class="QWidget" name="Form"> 
  <property name="geometry"> 
   <rect> 
    <x>0</x> 
    <y>0</y> 
    <width>400</width> 
    <height>300</height> 
   </rect> 
  </property> 
  <property name="windowTitle"> 
   <string>Form</string> 
  </property> 
  <layout class="QVBoxLayout" name="verticalLayout"> 
   <item> 
    <widget class="QWebEngineView" name="widget" native="true"/> 
   </item> 
  </layout> 
 </widget> 
 <customwidgets> 
  <customwidget> 
   <class>QWebEngineView</class> 
   <extends>QWidget</extends> 
   <header>PyQt5.QtWebEngineWidgets</header> 
   <container>1</container> 
  </customwidget> 
 </customwidgets> 
 <resources/> 
 <connections/> 
</ui> 

主.py

import os 
import sys 
 
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets, uic 
 
if __name__ == '__main__': 
    app = QtWidgets.QApplication(sys.argv) 
    path_ui = os.path.join(os.path.dirname(__file__), "test.ui") 
    window = uic.loadUi(path_ui) 
    window.widget.load(QtCore.QUrl("https://stackoverflow.com/")) 
    window.show() 
    sys.exit(app.exec_())