python PyQt QtWebEngine本ウィンドウジャンプ+新しいウィンドウジャンプを実現


python PyQt QtWebEngine本ウィンドウジャンプ+新しいウィンドウジャンプを実現
重点的な説明:
QtWebEngineViewはchromeカーネルのブラウズウィンドウを作成し、マウスの左ボタンでウィンドウのリンクをクリックすると応答がなく(デフォルト)、応答を実現するにはQtWebEngineViewのcreatewindow(self,type)メソッド、またはQWebEnginePageのcreateWindow()メソッドをリロードする必要があります.しかし、2つの方法を再ロードするのもおかしいです.ネット上で言ったように、直接return selfは少しも役に立ちません.この時点で実際には現在のpageのurlchanged信号がありurlというurlがあなたがクリックしたurlでseturlであればいいのです
いいえ、直接コードをつけます.このウィンドウのジャンプページ
from PyQt5 import QtCore,QtGui,QtWidgets,QtWebEngineWidgets

class WebEngineView(QtWebEngineWidgets.QWebEngineView):
    def createWindow(self,QWebEnginePage_WebWindowType):
        page = WebEngineView(self)
        page.urlChanged.connect(self.on_url_changed)
        return page
    def on_url_changed(self,url):
        self.setUrl(url)
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = QtWidgets.QMainWindow()
    webbrowser = WebEngineView()
    webbrowser.load(QtCore.QUrl("https://www.baidu.com"))
    window.setCentralWidget(webbrowser)
    window.show()
    sys.exit(app.exec_())

2.新しいウィンドウで新しいページをジャンプ
from PyQt5 import QtCore,QtGui,QtWidgets,QtWebEngineWidgets
class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        QtWidgets.QMainWindow.setFixedSize(self,800,400)
        self.webview = WebEngineView()
        self.webview.load(QtCore.QUrl("https://www.baidu.com"))
        self.setCentralWidget(self.webview)
class WebEngineView(QtWebEngineWidgets.QWebEngineView):
    windows = [] #            ,     ,   createwindow         
    def createWindow(self, QWebEnginePage_WebWindowType):
        newtab =   WebEngineView()
        newwindow= MainWindow()
        newwindow.setCentralWidget(newtab)
        newwindow.show()
        self.windows.append(newwindow)
        return newtab
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

具体的な各類の細部の方法、信号などは多すぎて自分で学ぶ必要があります
  • そうそう暇があったら、pyqt 5をインストールするアシスタントをあげます.このネットにはチュートリアルがありません.自分でdocをダウンロードして、中の関数を修正してできた
  • です.