从另一个类

时间:2016-06-06 19:12:09

标签: python python-3.x pyqt4

我正在尝试使用另一个类中的变量,但我得到错误,“run()缺少1个必需的位置参数:'MyWindowClass'”

class TaskThread(QtCore.QThread):
    updateProgressSignal = QtCore.pyqtSignal(int)
    def run(self, MyWindowClass):
        for i in range(101):
           self.updateProgressSignal.emit(i)
           print ( MyWindowClass.pbTimeUpdate )
           time.sleep(MyWindowClass.pbTimeUpdate) 

class MyWindowClass(QtGui.QDialog ):
    def __init__(self, *args):
        super(MyWindowClass, self).__init__(*args)  
        self.pbTimeUpdate = .2
        self.myLongTask = TaskThread()
        self.myLongTask.updateProgressSignal.connect (self.onProgress)
        self.myLongTask.start()

    def onProgress (self, val )
        print (val)

我已经尝试将变量设置为global(在同一个文件中的两个类之外声明),但是在一个类中更新变量值,另一个类仍然看到原始值)

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

这应该有效:

class MyWindowClass(QtGui.QDialog):
    pbTimeUpdate = .2

class TaskThread(QtCore.QThread):
    updateProgressSignal = QtCore.pyqtSignal(int)

    def run(self):
        for i in range(101):
           self.updateProgressSignal.emit(i)
           print(MyWindowClass.pbTimeUpdate)
           time.sleep(MyWindowClass.pbTimeUpdate)