python PyQt QtWebEngine本ウィンドウジャンプ+新しいウィンドウジャンプを実現
9032 ワード
python PyQt QtWebEngine本ウィンドウジャンプ+新しいウィンドウジャンプを実現
重点的な説明:
QtWebEngineViewはchromeカーネルのブラウズウィンドウを作成し、マウスの左ボタンでウィンドウのリンクをクリックすると応答がなく(デフォルト)、応答を実現するにはQtWebEngineViewのcreatewindow(self,type)メソッド、またはQWebEnginePageのcreateWindow()メソッドをリロードする必要があります.しかし、2つの方法を再ロードするのもおかしいです.ネット上で言ったように、直接return selfは少しも役に立ちません.この時点で実際には現在のpageのurlchanged信号がありurlというurlがあなたがクリックしたurlでseturlであればいいのです
いいえ、直接コードをつけます.このウィンドウのジャンプページ
2.新しいウィンドウで新しいページをジャンプ
具体的な各類の細部の方法、信号などは多すぎて自分で学ぶ必要がありますそうそう暇があったら、pyqt 5をインストールするアシスタントをあげます.このネットにはチュートリアルがありません.自分でdocをダウンロードして、中の関数を修正してできた です.
重点的な説明:
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_())
具体的な各類の細部の方法、信号などは多すぎて自分で学ぶ必要があります