我有一个小Python程序,它获取Tkinter scale的值并将其放入一个标签中。在
#!/usr/bin/python
from Tkinter import *
class App:
strval = StringVar()
def __init__(self,master):
frame = Frame(master)
frame.pack()
self.slide = Scale(frame, command = self.up, from_ = 1, to = 100)
self.out = Label(frame, textvariable = self.strval)
self.slide.pack()
self.out.pack()
def up(self,newscale):
amount = str(newscale)
self.strval.set(amount)
root = Tk()
app = App(root)
root.mainloop()
当我运行程序时,它会给我和错误消息:
^{pr2}$我不太确定出了什么问题,我对Tk接口完全一窍不通。 如果有人能解释我做错了什么,我会很乐意的。在
这是因为您在创建Tk根元素之前创建了StringVar。如果将语句
root = Tk()
移到类的定义之前,您将看到它是如何按预期工作的。在但是,理想的解决方案是以不依赖顺序的方式编写它,因此我建议您在构造函数中创建StringVar:
相关问题 更多 >
编程相关推荐