Tkinter - 获取比例/滑块的名称和值

时间:2015-05-13 07:40:10

标签: python tkinter

我想在缩放/滑块值更改时获取缩放/滑块的名称。我通过使用:

设法获得了规模的价值
self.slider = tk.Scale(self.root, from_=0, to=100, 
                           orient="horizontal")
        self.slider.bind("<ButtonRelease-1>", self.updateValue)

def updateValue(self, event): print self.slider.getName()

我想这样做就像在java中完成的那样:

JSlider object = (JSlider) evt.getSource();

这样我就可以获得比例的名称和价值。 有没有办法在python中执行此操作?

1 个答案:

答案 0 :(得分:2)

您可以从event获取widget,检查它是否为Scale并获取get()的值。要获取窗口小部件的名称,请使用cget("label")(假设通过&#34; name&#34;您的意思是比例标签)。像这样:

def updateValue(self, event):
    w = event.widget
    if isinstance(w, tk.Scale):
        print repr(w)
        print w.get()
        print w.cget("label")

这样的用法(与代码相同,但添加了label参数):

self.slider = tk.Scale(self.root, label="First Slider", from_=0, to=100, orient="horizontal")
self.slider.bind("<ButtonRelease-1>", self.updateValue)

但请注意,这仅适用于bind,而不适用于command参数,因为command回调不会获得Event,而只会获得新值作为参数。此外,这仅适用于Tkinter.Scale,而不适用于ttk.Scale,因为后者没有label参数。