繁体   English   中英

pyqt4 gui如何异步使用?

[英]How to pyqt4 gui used asynchronously?

循环开始时,此代码将停止GUI。 并且,文本追加操作结束循环。

我不想停止GUI,而是希望文本实时显示。

from PyQt4 import QtCore, QtGui
class MyFrom(QtGui.QMainWindow) :
    def __init__(self, parent=None) :
        QtGui.QWidget.__init__(self, parent)

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.ui.btn_start.clicked.connect(self.setOptionState)

    def setOptionState(self) :
        for i in xrange(5) :
            self.ui.textBrowser.append("[+] Case : %d\n" % i)
            self.testFunc()

    def testFunc(self) :
        for i in xrange(100000000) :
            pass

GUI具有默认循环,并且该循环会被占用大量时间并导致应用程序冻结或不当行为的循环阻塞,一种简单的解决方法是使用processEvents()

def testFunc(self) :
    for i in xrange(1000000) :
        QtGui.qApp.processEvents()
        pass

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM