QWebEngineView:显示加载进度

2024-10-06 07:37:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在PyQt5和python3.6中使用了一个QWebEngineView小部件。 我想显示页面加载时的进度。出于演示的目的,我只使用print语句来实现这一点(稍后我想让一个进度条小部件出现,显示进度并在完成后消失)。在

我连接到事件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())

当然,现在我希望得到loadProgress事件的实际进度值,而不是数字42。我怎么得到这个?在

对不起,如果这个问题是愚蠢的。我是一个NeBee,我不能从C++文档中把它翻译成Python。(不幸的是,我找不到适合Qt的Python docu。)


Tags: lambdaselfbrowsertime部件defconnect事件
1条回答
网友
1楼 · 发布于 2024-10-06 07:37:57

不需要传递lambda,可以使用new connection syntax直接连接它:

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)

示例:

^{pr2}$

相关问题 更多 >