当比例尺/ slider 值发生变化时,我试图获取比例尺/ slider 的名称。我成功地通过使用以下方法获得了规模值:
self.slider = tk.Scale(self.root, from_=0, to=100,
orient="horizontal")
self.slider.bind("<ButtonRelease-1>", self.updateValue)
和:
def updateValue(自身,事件):
打印 self.slider.getName()
我想像在java中那样做,比如:
JSlider object = (JSlider) evt.getSource();
这样我就可以获得秤的名称和值。 有没有办法在 python 中做到这一点?
最佳答案
您可以从 event
获取小部件
,检查它是否是一个 Scale
并使用 get()
获取值。要获取小部件的名称,请使用 cget("label")
(假设“名称”指的是比例尺的标签)。像这样的事情:
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
参数。
关于python - Tkinter - 获取比例/ slider 的名称和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30208566/