当我单击listbox
中的项目时,我想获取该值并将其打印到标签上。
我试图找出答案,但得到了函数名<<ListboxSelect>>
,但未能获得价值。我能做的就是打印出值。
我想要的是当我单击listbox
中的项目时,希望将其打印在标签上。
答案 0 :(得分:0)
下面是您要执行的操作的示例。
import tkinter as tk
root = tk.Tk()
def update(*args):
a = lbox.curselection() #note a is a tuple containing the line numbers of the selected element counting from 0.
print( type(a), a )
lb_value.set( countrynames[ a[0] ] ) #Update the control variable's value.
countrynames = ('Argentina', 'Australia', 'Belgium', 'Brazil', 'Canada',
'China', 'Denmark', 'Finland', 'France', 'Greece', 'India')
listCon = tk.StringVar( value=countrynames )
lbox = tk.Listbox(root, listvariable=listCon, height=10, selectmode=tk.SINGLE,)
lbox.grid(row=0, column=0)
lbox.bind('<<ListboxSelect>>', update)
lb_value=tk.StringVar()
lb = tk.Label(root, textvariable=lb_value, bg='yellow')
lb.grid(row=0, column=1)
root.mainloop()
您需要将Listbox
所选项目传递到Control variable,textvariable
小部件的Label
选项将读取该项目。根据列表框中的数据类型,您必须选择要使用的适当类型的控制变量,即StringVar()
,IntVar()
或DoubleVar()
。我的示例使用StringVar()
,因为countryname
的内容都是字符串类型。