我想在缩放/滑块值更改时获取缩放/滑块的名称。我通过使用:
设法获得了规模的价值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中执行此操作?
答案 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
参数。