从另一个类访问变量

2024-09-26 17:45:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在另一个类中使用一个变量,但是我得到了一个错误,“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)

我试着使变量变为全局变量(在同一个文件中的两个类外部声明),但在一个类中更新变量值时,另一个类仍能看到原始值)

可能是什么问题?在


Tags: runselfinitdefargsvalclassprint
1条回答
网友
1楼 · 发布于 2024-09-26 17:45:57

这应该是有效的:

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) 

相关问题 更多 >

    热门问题