如何在线程类uisng pyqt4中调用主窗口类方法

时间:2019-02-07 04:55:39

标签: python-2.7 pyqt4

在我的程序中,我需要在线程类中调用一个主窗口函数。我尝试了很多方法,但是我得到的GUI不是安全错误,我没有得到输出,这是我的示例代码,任何人都可以帮助我如何调用线程类中的函数。请帮帮我。

我的示例代码:

import time
from PyQt4 import QtGui,QtCore
global p
class OpenOMX(QtCore.QThread):
    statusChanged = QtCore.pyqtSignal(int)

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


    def run(self):
         while True:
            # try:

                self.statusChanged.emit(status)
                print "connect"
            # except:
            #     pass

class Table_Program(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(Table_Program, self).__init__(parent)
        self.w = QtGui.QWidget()
        self.openOMX = OpenOMX()
        self.openOMX.statusChanged.connect(self.click_me)

        self.mainLayout = QtGui.QVBoxLayout(self.w)
        self.btn = QtGui.QPushButton("click")
        self.btn.clicked.connect(self.click_me)
        self.mainLayout.addWidget(self.btn)
        self.setCentralWidget(self.w)

    def click_me(self):
        print "click me"

if __name__ == '__main__':
    import sys
    global p
    app = QtGui.QApplication(sys.argv)
    p = Table_Program()
    p.show()
    app.exec_()

0 个答案:

没有答案