从 PyQt5.QWebEngineWidgets 导入 * 不起作用

从 PyQt5.QWebEngineWidgets 导入 * 不起作用

我尝试使用 pip3 install PyQtWebEngine 安装和卸载 PyQtWebEngine(没有用)我做错了什么代码

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QWebEngineWidgets import *
from PyQt5.QtPrintSupport import *
import os
import sys

class MainWindow(QMainWindow):

    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)


        self.browser = QWebEngineView()

        self.browser.setUrl(QUrl("http://google.com"))

        self.browser.urlChanged.connect(self.update_urlbar)

        self.browser.loadFinished.connect(self.update_title)

        self.setCentralWidget(self.browser)

        self.status = QStatusBar()

        self.setStatusBar(self.status)

        navtb = QToolBar("Navigation")

        self.addToolBar(navtb)

        back_btn = QAction("Back", self)

        back_btn.setStatusTip("Back to previous page")

        back_btn.triggered.connect(self.browser.back)

        navtb.addAction(back_btn)

        next_btn = QAction("Forward", self)
        next_btn.setStatusTip("Forward to next page")

        next_btn.triggered.connect(self.browser.forward)
        navtb.addAction(next_btn)

        reload_btn = QAction("Reload", self)
        reload_btn.setStatusTip("Reload page")

        reload_btn.triggered.connect(self.browser.reload)
        navtb.addAction(reload_btn)

        home_btn = QAction("Home", self)
        home_btn.setStatusTip("Go home")
        home_btn.triggered.connect(self.navigate_home)
        navtb.addAction(home_btn)

        navtb.addSeparator()

        self.urlbar = QLineEdit()

        self.urlbar.returnPressed.connect(self.navigate_to_url)

        navtb.addWidget(self.urlbar)

        stop_btn = QAction("Stop", self)
        stop_btn.setStatusTip("Stop loading current page")


        stop_btn.triggered.connect(self.browser.stop)
        navtb.addAction(stop_btn)

        self.show()


    def update_title(self):
        title = self.browser.page().title()
        self.setWindowTitle("% s - Not virus" % title)


    def navigate_home(self):

        self.browser.setUrl(QUrl("http://www.google.com"))

    def navigate_to_url(self):


        q = QUrl(self.urlbar.text())


        if q.scheme() == "":

            q.setScheme("http")


        self.browser.setUrl(q)



    def update_urlbar(self, q):

        # setting text to the url bar
        self.urlbar.setText(q.toString())

        # setting cursor position of the url bar
        self.urlbar.setCursorPosition(1)



app = QApplication(sys.argv)


app.setApplicationName("Not virus")

window = MainWindow()

# loop
app.exec_()

答案1

是什么让您决定直接通过 pip 安装模块而不是python3-pyqt5.qtwebengine通过可用的包安装apt

作为大卫提到,最新的 Python 库版本可能与旧版本的 Qt5 库不兼容,是的,Ubuntu(大多数)附带旧版本,甚至更旧的版本,具体取决于您当前运行的 Ubuntu 版本。

但是,至少安装该库仍然apt可以保证您使用 Ubuntu 版本上可用的正确的 PyQt5 和 Qt5 版本。

相关内容