5 秒后更改 url

change url after 5 seconds

一旦 PyQt5 window 和 webEngine 已经启动,我想重定向到其他 link。这是我已经尝试过的:

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 秒,让第二个 link 显示,它永远不会显示 google 登录页面。如何在登录页面加载后重定向到另一个 link?

切勿在 GUI 中使用 time.sleep(),因为它会阻塞 GUI,使其无法正常执行任务,例如显示 window、更新 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()