Python Tkinter-将多个比例值传递给标签
我想在标签上显示选定的比例值。目前,我必须创建单独的标签来打印值。是否有一种聪明的方法将我选择的所有比例值传递到同一个标签进行打印Python Tkinter-将多个比例值传递给标签,python,user-interface,tkinter,Python,User Interface,Tkinter,我想在标签上显示选定的比例值。目前,我必须创建单独的标签来打印值。是否有一种聪明的方法将我选择的所有比例值传递到同一个标签进行打印 l1 = tk.Label(window, bg='yellow', width=50, text='empty') l1.pack() l2 = tk.Label(window, bg='yellow', width=50, text='empty') l2.pack() def print_selection1(v): l1.config(text=
l1 = tk.Label(window, bg='yellow', width=50, text='empty')
l1.pack()
l2 = tk.Label(window, bg='yellow', width=50, text='empty')
l2.pack()
def print_selection1(v):
l1.config(text='You have selected ' + v +' trucks')
def print_selection2(v):
l2.config(text='Truck Capacity is: ' + v + ' kg')
s1 = tk.Scale(window, label='Number of 7.5t truck', from_=0, to=30, orient=tk.HORIZONTAL,
length=400, showvalue=0, tickinterval=5, resolution=1, command=print_selection1)
s1.pack()
s2 = tk.Scale(window, label='Number of 12t truck', from_=0, to=30, orient=tk.HORIZONTAL,
length=400, showvalue=0, tickinterval=5, resolution=1, command=print_selection2)
s2.pack()
您可以在
值列表中保留当前比例值,并使用字符串格式:
import tkinter as tk
window = tk.Tk()
l = tk.Label(window, bg='yellow', width=50, text='empty\nempty')
l.pack()
values = [0, 0]
def print_selection(scale, v):
# update scale value
values[scale] = v
# update display
l.config(text='You have selected {} trucks\nTruck Capacity is: {} kg'.format(*values))
s1 = tk.Scale(window, label='Number of 7.5t truck', from_=0, to=30, orient=tk.HORIZONTAL,
length=400, showvalue=0, tickinterval=5, resolution=1,
command=lambda v: print_selection(0, v))
s1.pack()
s2 = tk.Scale(window, label='Number of 12t truck', from_=0, to=30, orient=tk.HORIZONTAL,
length=400, showvalue=0, tickinterval=5, resolution=1,
command=lambda v: print_selection(1, v))
s2.pack()
window.mainloop()
您可以在值列表中保留当前比例值,并使用字符串格式:
import tkinter as tk
window = tk.Tk()
l = tk.Label(window, bg='yellow', width=50, text='empty\nempty')
l.pack()
values = [0, 0]
def print_selection(scale, v):
# update scale value
values[scale] = v
# update display
l.config(text='You have selected {} trucks\nTruck Capacity is: {} kg'.format(*values))
s1 = tk.Scale(window, label='Number of 7.5t truck', from_=0, to=30, orient=tk.HORIZONTAL,
length=400, showvalue=0, tickinterval=5, resolution=1,
command=lambda v: print_selection(0, v))
s1.pack()
s2 = tk.Scale(window, label='Number of 12t truck', from_=0, to=30, orient=tk.HORIZONTAL,
length=400, showvalue=0, tickinterval=5, resolution=1,
command=lambda v: print_selection(1, v))
s2.pack()
window.mainloop()
是的,这是可能的。除了将值保存在单个标签中
之外,还可以使用单个函数编辑值。与其他答案不同,您可以使用.get()
获取刻度的当前值。代码如下:
import tkinter as tk
window = tk.Tk()
l1 = tk.Label(window, bg='yellow', width=50, text='empty'+'\n'+'empty')
l1.pack()
def edited(event):
l1.config(text='You have selected ' + str(s1.get()) +' trucks'+"\n"+"Truck Capacity is: "+ str(s2.get()) + " kg")
# ---------------------text1------------------+newline+---------------------text2--------------------
s1 = tk.Scale(window, label='Number of 7.5t truck', from_=0, to=30, orient=tk.HORIZONTAL,
length=400, showvalue=0, tickinterval=5, resolution=1, command=edited)
s1.pack()
s2 = tk.Scale(window, label='Number of 12t truck', from_=0, to=30, orient=tk.HORIZONTAL,
length=400, showvalue=0, tickinterval=5, resolution=1, command=edited)
s2.pack()
tk.mainloop()
是的,这是可能的。除了将值保存在单个标签中
之外,还可以使用单个函数编辑值。与其他答案不同,您可以使用.get()
获取刻度的当前值。代码如下:
import tkinter as tk
window = tk.Tk()
l1 = tk.Label(window, bg='yellow', width=50, text='empty'+'\n'+'empty')
l1.pack()
def edited(event):
l1.config(text='You have selected ' + str(s1.get()) +' trucks'+"\n"+"Truck Capacity is: "+ str(s2.get()) + " kg")
# ---------------------text1------------------+newline+---------------------text2--------------------
s1 = tk.Scale(window, label='Number of 7.5t truck', from_=0, to=30, orient=tk.HORIZONTAL,
length=400, showvalue=0, tickinterval=5, resolution=1, command=edited)
s1.pack()
s2 = tk.Scale(window, label='Number of 12t truck', from_=0, to=30, orient=tk.HORIZONTAL,
length=400, showvalue=0, tickinterval=5, resolution=1, command=edited)
s2.pack()
tk.mainloop()
它非常简单,包含的行数更少。谢谢,但我有一个问题。对于已编辑的def(事件):“事件”在哪里使用?@Jack。在缩放
中使用命令
时,它将始终返回一个值,因此不在此处写入任何参数,我们将得到一个错误。它非常简单,包含的行数更少。谢谢,但我有一个问题。对于已编辑的def(事件):“事件”在哪里使用?@Jack。在缩放
中使用命令
时,它将始终返回一个值,因此不在此处写入任何参数,我们将得到一个错误。