5秒后更改网址

问题描述 投票:2回答:1

一旦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秒钟显示第二个链接,它将永远不会显示谷歌登录页面。登录页面已加载后如何重定向到另一个链接?

python pyqt5 qtwebengine
1个回答
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()
© www.soinside.com 2019 - 2024. All rights reserved.