изменить URL через 5 секунд - PullRequest
1 голос
/ 22 марта 2019

Я хотел бы перенаправить на другие ссылки, когда окно 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. Как я могу перенаправить на другую ссылку после того, как страница входа уже загружена?

1 Ответ

1 голос
/ 22 марта 2019

Никогда не используйте time.sleep() в графическом интерфейсе, потому что он блокирует графический интерфейс, мешая ему нормально выполнять свою задачу, такую ​​как отображение окна, обновление статуса графического интерфейса и т. Д. Вместо этого используйте 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()
...