如何让 QtWebKitWidgets.QWebView 与 qt 设计器一起工作
Posted
技术标签:
【中文标题】如何让 QtWebKitWidgets.QWebView 与 qt 设计器一起工作【英文标题】:How to get QtWebKitWidgets.QWebView to work with qt designer 【发布时间】:2018-01-07 12:15:24 【问题描述】:我想在我的主窗口上集成/显示一个网页 (url) 部分。我使用 anaconda、pyqt (5.6) 和设计师。我通过设计器在我的主窗体上添加了一个 QWebView。但我无法运行它。我尝试运行主窗口时遇到的错误是:
self.webView_test = QtWebKitWidgets.QWebView(self.centralwidget)
NameError: name 'QtWebKitWidgets' is not defined
我做了一些研究,有很多类似的帖子。似乎 QtWebKitWidgets(以及 QtWebKit)不再可用(已弃用)。这很令人困惑,因为我通过设计器有 QWebView 选项。
我正在寻找一个无需重新安装 pyqt 或任何其他重大更改即可解决问题的答案。虽然我可以从 anacondas 网站等安装一些东西(包/模块)。我想完全从设计师那里做 gui 方面,所以如果有办法,请给我一些帮助。
参考:
NameError: name 'QWebPage' is not defined
https://github.com/conda-forge/pyqt-feedstock/issues/19
【问题讨论】:
检查生成的py文件,否则只需添加 from PyQt5 import QtWebKitWidgets @Nimish Bansal,错误消失了,但我看不到 QWebView 界面来检查它是否正常工作。所以我添加了这行代码:self.ui.webView_test.load(QtCore.QUrl("google.com"))。它给了我一个关于 QtCore 的错误。我添加 url 的正确方法是什么,以便我可以检查解决方案?我正在使用另一个 py 文件来控制设计器默认的 py fyi。 尽量加代码 我将这一行更改为:self.ui.webView_test.load(QUrl("google.com")) 并且它有效!我还添加了要导入的 QUrl。请添加您的评论作为答案我可以接受。谢谢!( 没问题。你自己解决了:) 【参考方案1】:看来答案很简单。感谢@Nimish Bansal,以下解决了它:
只需添加一行:
from PyQt5 import QtWebKitWidgets
进入pyuic生成的原始py文件。每次修改窗口设计器时都必须牢记(此更改)。它不会自动添加该行。就是这样!
编辑:我刚刚注意到 (import) 行确实带有 pyuic。但它属于 UI 文件中的主要代码 - 不在顶部。我总是评论那部分,所以直到现在我才注意到它。您所要做的就是剪断它们的线(与我提供的相同)并将其移动到顶部(其他导入所在的位置)。
【讨论】:
以上是关于如何让 QtWebKitWidgets.QWebView 与 qt 设计器一起工作的主要内容,如果未能解决你的问题,请参考以下文章