0

我正在尝试创建一个 GUI 来使用 tkinter 运行实验。我需要将用户在 Scale 小部件上选择的值分配给一个名为“amount”的变量。但是,无论我在秤上的哪个位置, 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。但是 print 命令会打印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))
4

1 回答 1

0

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()
于 2022-01-05T00:47:31.767 回答