从另一个线程PyQT正确更新重启GUI

时间:2017-09-24 09:36:01

标签: python multithreading qt user-interface pyqt4

所以我有一个进程,它有自己的线程并写入(追加)到output.txt。我也有一个从这个output.txt读取的GUI。我想在Output.txt中有新内容时更新GUI。 现在我通过退出和重新执行()GUI来做到这一点。这有效,但看起来很糟糕。

class _do_scan(QtCore.QThread):
    trigger = QtCore.pyqtSignal()

    def __init__(self):
        QThread.__init__(self)

    def run(self):
        self.do_scan()  

    def do_scan():
        #when found smth and written to output.txt
        self.trigger.emit()

def main(options = None):

    app = QtGui.QApplication(sys.argv)

    scan_thread = _do_scan()
    scan_thread.start()  

    scan_thread.trigger.connect(lambda: app.quit())

    while scan_thread.isRunning():
        window = Window()
        window.show()   
        app.exec_()

    window = Window()
    window.show()   
    sys.exit(app.exec_())

知道如何更好地管理它吗? 我试着用

    scan_thread.trigger.connect(lambda: window.update())
    scan_thread.trigger.connect(lambda: window.repaint())

但没有工作

提前致谢

0 个答案:

没有答案