[英]QWebEngineView: showing load progress
我正在使用帶有PyQt5和Python 3.6的QWebEngineView小部件。 頁面加載時,我想顯示進度。 出於演示目的,我僅使用打印語句來完成此操作(以后,我想讓進度條小部件出現,顯示進度並在完成后消失)。
我將事件連接到loadStarted,loadProgress,loadFinished。
代碼看起來像這樣( self.browser是QWebEngineView小部件):
def loadStartedHandler(self):
print(time.time(), ": load started")
def loadProgressHandler(self, prog):
print(time.time(), ":load progress", prog)
def loadFinishedHandler(self):
print(time.time(), ": load finished")
# ....
self.browser.loadStarted.connect(lambda: self.loadStartedHandler())
self.browser.loadProgress.connect(lambda: self.loadProgressHandler(42))
self.browser.loadFinished.connect(lambda: self.loadFinishedHandler())
當然,現在,我希望獲取數字而不是數字42的loadProgress事件的實際進度值。 我怎么得到這個?
抱歉,這個問題很愚蠢。 我是一個新手,只是無法從C ++文檔將其轉換為Python。 (不幸的是,我找不到Qt的像樣的Python文檔。)
不必傳遞lambda,您可以使用新的連接語法直接將其連接 :
def loadStartedHandler(self):
print(time.time(), ": load started")
def loadProgressHandler(self, prog):
print(time.time(), ":load progress", prog)
def loadFinishedHandler(self):
print(time.time(), ": load finished")
....
self.browser.loadStarted.connect(self.loadStartedHandler)
self.browser.loadProgress.connect(self.loadProgressHandler)
self.browser.loadFinished.connect(self.loadFinishedHandler)
例:
import sys
import time
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets
class Widget(QtWidgets.QWidget):
def __init__(self):
super(Widget, self).__init__()
lay = QtWidgets.QVBoxLayout(self)
self.browser = QtWebEngineWidgets.QWebEngineView()
lay.addWidget(self.browser)
self.browser.setUrl(QtCore.QUrl("https://www.google.com"))
self.browser.loadStarted.connect(self.loadStartedHandler)
self.browser.loadProgress.connect(self.loadProgressHandler)
self.browser.loadFinished.connect(self.loadFinishedHandler)
@QtCore.pyqtSlot()
def loadStartedHandler(self):
print(time.time(), ": load started")
@QtCore.pyqtSlot(int)
def loadProgressHandler(self, prog):
print(time.time(), ":load progress", prog)
@QtCore.pyqtSlot()
def loadFinishedHandler(self):
print(time.time(), ": load finished")
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
view = Widget()
view.show()
sys.exit(app.exec_())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.