【问题标题】:I want to get value from listbox, tkinter我想从列表框 tkinter 中获取价值
【发布时间】:2019-06-08 08:53:34
【问题描述】:

当我从listbox 中单击项目时,我想获取该值并将其打印到标签上。

我试图找出并得到函数名称<<ListboxSelect>>,但我未能获得价值。我能做的就是打印出值。

我想要的是当我单击listbox 中的项目时,我希望它打印在标签上。

【问题讨论】:

  • 如果没有看到minimal reproducible example,我们无法猜测它失败的原因,以及实际结果以及它们与您的预期结果有何不同的解释。

标签: tkinter google-colaboratory


【解决方案1】:

以下是您要执行的操作的示例。

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 variableLabel 小部件的textvariable 选项会读入该Label 选项。根据列表框中的数据类型,您必须选择要使用的适当类型的控制变量,即StringVar()IntVar()DoubleVar()。我的示例使用了StringVar(),因为countryname 的内容都是字符串类型。

【讨论】:

    猜你喜欢
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 2014-03-02
    相关资源
    最近更新 更多