所以我尝试运行以下代码:
class PageOne(Frame):
def __init__(self, parent, controller):
Frame.__init__(self, parent)
i = 0
def timeout():
global i
barraProgreso["value"] = i
i += 1
print("oli")
# duration is in seconds
display = tkinter.Label(self, text="Progreso")
display.grid(row=1, column=1, sticky=tkinter.N)
barraProgreso = ttk.Progressbar(self, orient='horizontal', length=350, mode='determinate')
barraProgreso.grid(row=1, column=1, sticky=tkinter.N)
controller.after(10, timeout())
#t = Timer(2.0, timeout)
#t.start()
但出现以下错误:
local variable 'i' referenced before assignment
我不能让它工作,我不知道为什么,也许有一些关于类的概念和它们里面的所有东西,我没有编码好,我已经与他们斗争了一段时间,因为我是一种新的Python。我的目标是通过这个计时器方法控制进度条的值。你知道吗
如果你看到我做的不是最好的方式,我是开放的各种建议。你知道吗
提前谢谢!你知道吗
实际上,您不希望在
timeout
方法中将i
定义为全局;在__init__
中定义的i
不是全局的。它在__init__
方法的范围内。你知道吗更好的方法是将
i
定义为类的属性:self.i
。然后类中的任何方法都可以轻松地访问self.i
。你知道吗相关问题 更多 >
编程相关推荐