一旦PyQt5窗口和webEngine已经启动,我想重定向到其他链接。这是我已经尝试过的:
import sys
import time
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets
def mainPyQt5():
url = 'https://accounts.google.com/signin/v2'
app = QtWidgets.QApplication(sys.argv)
browser = QtWebEngineWidgets.QWebEngineView()
browser.load(QtCore.QUrl(url))
browser.show()
time.sleep(5)
browser.load(QtCore.QUrl("https://youtube.com"))
browser.show()
time.sleep(5)
sys.exit(app.exec_())
mainPyQt5()
这将仅等待5秒钟,第二个链接才会显示,它将永远不会显示google登录页面。登录页面加载后,如何重定向到另一个链接?
答案 0 :(得分:1)
切勿在GUI中使用time.sleep()
,因为它会阻塞GUI,阻止其正常执行其任务,例如显示窗口,更新GUI状态等。请改用QTimer。
import sys
from functools import partial
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets
def mainPyQt5():
url = 'https://accounts.google.com/signin/v2'
app = QtWidgets.QApplication(sys.argv)
browser = QtWebEngineWidgets.QWebEngineView()
browser.load(QtCore.QUrl(url))
browser.show()
QtCore.QTimer.singleShot(5*1000, partial(browser.load, QtCore.QUrl("https://youtube.com")))
sys.exit(app.exec_())
mainPyQt5()