Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter-将多个比例值传递给标签_Python_User Interface_Tkinter - Fatal编程技术网

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。在
缩放
中使用
命令
时,它将始终返回一个值,因此不在此处写入任何参数,我们将得到一个错误。