首页 > 解决方案 > gui 在 pyqt 上发射期间死亡

问题描述

为什么当我使用函数 work() 时 gui 会死掉,我想在没有块 gui 的情况下在 gui 上显示一些单词,所以决定使用 qthread 来完成这项工作。当我调试程序时,当程序运行到“self._signal.emit(msg)”时,gui会死。

q1=Queue.Queue()

class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):   
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        Ui_MainWindow.__init__(self)
        self.setupUi(self)      
        self.display1=textbrowser1display()
        self.display1._signal.connect(self.display11)
        self.display1.start()



class textbrowser1display(QThread):
    _signal=pyqtSignal()
    def __init__(self):
        super(textbrowser1display, self).__init__()

    def run(self):
        print "screen1 emit working"
        time.sleep(0.1)
        while global_list.display:
            if not global_list.q1.empty():
                msg=str(global_list.q1.get(block=True))
                self._signal.emit(msg)
            else:
                time.sleep(0.1)
class job():
    def work(self):
        global_list.q1.put("initbus",block=True)

标签: pythonpython-2.7pyqtpyqt5

解决方案


推荐阅读