我正在尝试使用另一个类中的变量,但我得到错误,“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(在同一个文件中的两个类之外声明),但是在一个类中更新变量值,另一个类仍然看到原始值)
可能是什么问题?
答案 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)