PySide2 使用

使用PySide2 时遇到一个问题: ImportError: cannot import name QWebView

网上搜索了下有如下发现:

Qt5有两种不同的Web工具包:基于WebKit的QtWebKit和基于Chromium的较新的QtWebEngine。
QWebPage和QWebView是QtWebKit的一部分,而QWebEngineView和QWebEnginePage是QtWebEngine的一部分。

正确使用方法如下:

使用PySide2

  • WebEngine
from PySide2.QtWebEngineWidgets import QWebEnginePage

from PySide2.QtWebEngineWidgets import QWebEngineView

使用PyQt5

在 PyQt 5.6(+) 版本中, Qt 移除了对 QtWebKitWidgets 模块的支持, 新增 QtWebEngineWidgets 作为代替, 以提供更好的和最新的 HTML, CSS 以及 JavaScript 功能支持(基于Chromium)。

详情见:http://doc.qt.io/qt-5/whatsnew56.html

  • WebEngine(PyQt >= 5.7.1)
from PyQt5.QtWebEngineWidgets import QWebEnginePage

from PyQt5.QtWebEngineWidgets import QWebEngineView

注:pip3 install PyQt5==5.6提示最早的版本为5.7.1,更早的版本未测试

  • WebKit(前提是支持QtWebKit)
from PyQt5.QtWebKitWidgets import QWebPage

from PyQt5.QtWebKitWidgets import QWebView
QAxWidget是Qt中的一个控件,它可以用于将ActiveX控件嵌入到Qt应用程序中。Pyside2Qt的一个Python绑定库,它可以让我们使用Python语言编写Qt应用程序。 使用QAxWidget在Pyside2中嵌入ActiveX控件的步骤如下: 1. 导入Pyside2.QtWidgets和Pyside2.QtAxContainer模块 ```python from PySide2.QtWidgets import QApplication, QMainWindow from PySide2.QtAxContainer import QAxWidget ``` 2. 创建Qt应用程序和主窗口 ```python app = QApplication(sys.argv) window = QMainWindow() ``` 3. 创建QAxWidget对象,并设置ActiveX控件的CLSID和父窗口 ```python axwidget = QAxWidget('{clsid}', parent=window) ``` 4. 设置ActiveX控件的属性和方法 ```python axwidget.setControl('{progid}') axwidget.dynamicCall('SetProperty(QString, QVariant)', 'Property1', 'Value1') axwidget.dynamicCall('CallMethod(QString, QVariant)', 'Method1', 'Arg1') ``` 5. 将QAxWidget对象添加到主窗口中,并显示主窗口 ```python window.setCentralWidget(axwidget) window.show() ``` 完整的示例代码如下: ```python import sys from PySide2.QtWidgets import QApplication, QMainWindow from PySide2.QtAxContainer import QAxWidget app = QApplication(sys.argv) window = QMainWindow() axwidget = QAxWidget('{clsid}', parent=window) axwidget.setControl('{progid}') axwidget.dynamicCall('SetProperty(QString, QVariant)', 'Property1', 'Value1') axwidget.dynamicCall('CallMethod(QString, QVariant)', 'Method1', 'Arg1') window.setCentralWidget(axwidget) window.show() sys.exit(app.exec_()) ``` 其中,{clsid}和{progid}分别为ActiveX控件的CLSID和ProgID,可以在ActiveX控件的文档中找到。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值