我有一个类的方法,我有一个while
循环,我想在每次迭代时返回一些东西。
class Machine():
def __init__(self):
self.ActReturn = 0
def ExecuteM(self, Var1, Var2):
while Var1 != 'stop':
Var2 = Var2 + 3
self.ActReturn = self.ActReturn + 1
sleep(0.5)
然后我想打电话给ExecuteM
,但要获得"某事"用于执行while
循环并能够修改图形界面。
def main(self):
temp = 0
self.TM.ExecuteM(var1, var2)
if self.TM.ActReturn > temp:
self.result.setText(Result())
temp = temp + 1
但是肯定它不会这样工作,因为ExecuteM
将被执行直到他的while
循环结束,然后文本将被设置....
我怎么能创建这种沟通?
修改
如果我尝试这样的话:
class Machine():
def __init__(self, result):
self.result=result
def ExecuteM(self, Var1, Var2):
while Var1 != 'stop':
Var2 = Var2 + 3
self.result.setText(Result())
sleep(0.5)
为什么它不起作用? 谢谢 !
答案 0 :(得分:3)
如果我理解正确:您希望使用while
循环来更改某些值,并让这些值更改GUI的状态。为什么将while循环放在一个单独的函数中呢?
我认为如果你的while
函数中有一个main
循环,并且在每次迭代期间调用setText
和ExecuteM
内的必要逻辑,那么你会更好
只需移动功能,这样每个循环就不会调用setText
一次;而是每次迭代调用一次。