如何在evaluateJavaScript命令后更新GUI,即使python仍在PyQt5中运行

2024-09-30 05:29:50 发布

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

我想使用evaluateJavaScript命令动态修改我的GUI

我注意到GUI只有在python完成工作后才会更新。我创建了以下示例代码:

基本图形用户界面:

webView = QWebView()
myObj = ExampleClass(webView)
webView.page().mainFrame().addToJavaScriptWindowObject("pyObj", myObj)
webView.setHtml('''
<html>
    <body>
        <div id="content"></div>
        <button onClick="pyObj.example()">start</button>
    </body>
</html>
''')

更新Html GUI的Python代码:

class ExampleClass(QtCore.QObject):
    def __init__(self, webView):
        super(ExampleClass, self).__init__(webView)
        self.webView = webView

    @QtCore.pyqtSlot()
    def example(self):
        print("start")
        for i in range(0,5):
            print(i)
            self.webView.page().mainFrame().evaluateJavaScript('document.getElementById("content").innerHTML = "'+str(i)+'";')
            time.sleep(1)

目标:按下“开始”按钮后,我希望看到数字0 1 2 3 4按顺序出现在我的GUI中,每秒钟一个。 当前结果:按下“开始”按钮5秒钟后,什么也没有发生,然后数字4出现


Tags: 代码selfdivhtmlpageguibodybutton

热门问题