python - Tkinter - 获取比例/ slider 的名称和值

标签 python tkinter

当比例尺/ 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/

相关文章:

python - 接收 bool 结果以查看 crontab 是否存在

python - Numpy 下一个元素减去上一个

python - Tkinter 窗口不显示任何内容

python - 如何从 Tkinter 按钮获取命令功能?

python - 使用网格的 Tkinter 中不会出现复选框

python - 我将如何制作一个每次在 tkinter 中显示帧时运行的方法

python - 如何在没有循环的情况下为多列设置值

python - 如何使用 Pyramid 访问 Plone 生成并保存在 ZODB 上的数据?

python - 扭曲的回调函数困惑

python - 如何在 Tkinter 中检测圆圈的某种颜色?