我正在尝试创建一个 GUI 来使用 tkinter 运行实验。我需要将用户在 Scale 小部件上选择的值分配给名为"金额"的变量。 但是,scale.get() 总是将值"0"分配给金额,无论我在秤上的位置如何。
关于 Scale 小部件的大多数答案似乎都表明 scale.get() 对其他人都非常有效,所以我不确定我做错了什么。 我正在使用Python 3,我编写了以下代码来测试get方法:
import tkinter as tk
root = tk.Tk()
root.title("Test")
slider = tk.Scale(orient='horizontal', label = 'Amount', length = 500, from_= 0, to = 1000, bg = 'white', fg = 'black', sliderlength = 20)
amount = slider.get()
slider.pack()
print (amount)
root.mainloop()
根据其他答案,amount
应该等于我在slider
上选择的任何值。但是打印命令打印0
.
这是我的代码和slider
.
这是输出。
复制评论:我尝试了以下方法:
def get_value(var): amount = var.get() return amount var = tk.DoubleVar() scale = tk.Scale( root, variable = var ) scale.pack(anchor=CENTER) print (get_value(var))
您可以将命令链接到您的秤并摆脱amount = slider.get()
和print(amount)
。 这是代码:
import tkinter as tk
def get_value(v):
print(v)
root = tk.Tk()
root.title("Test")
slider = tk.Scale(orient='horizontal', label = 'Amount', length = 500, from_= 0, to = 1000, bg = 'white', fg = 'black', sliderlength = 20, command=get_value)
slider.pack()
root.mainloop()