在tkinter列表框中返回选定值的列表

卡马里亚

我正在尝试创建一个tkinter列表框,并将用户选择的选项打印为列表。到目前为止,我有:

from tkinter import *
from tkinter import ttk

main = Tk()
main.title('Test GUI')
main.geometry('700x500')

nb = ttk.Notebook(main)
nb.grid(row=1, column=0, columnspan=50, rowspan=49, sticky='NESW')

page1 = ttk.Frame(nb)
nb.add(page1, text='Search Terms')

p1_IncludeLanguage = Listbox(page1)
p1_IncludeLanguage.configure(selectmode=MULTIPLE, width=9, height=5)
p1_IncludeLanguage.grid(row=0, column=0)

for lang in ["English", "German", "French", "Italian", "Portuguese"]:
    p1_IncludeLanguage.insert(END, lang)

main.mainloop()

我想打印出列表框中的选定选项,然后尝试通过用来获取其行号p1_IncludeLanguage.curselection(),但这会导致错误TclError: invalid command name ".!notebook.!frame.!listbox"

还有其他方法可以做到这一点吗?为什么.curselection()不工作?

scotty3785

如何为您工作?我添加了一个按钮,它将获取所选项目的列表。

from tkinter import *
from tkinter import ttk

def get_selection():
    items = [languages[int(item)] for item in  p1_IncludeLanguage.curselection()]
    print(items)

main = Tk()
main.title('Test GUI')
main.geometry('700x500')

nb = ttk.Notebook(main)
nb.grid(row=1, column=0, columnspan=50, rowspan=49, sticky='NESW')

page1 = ttk.Frame(nb)
nb.add(page1, text='Search Terms')

p1_IncludeLanguage = Listbox(page1)
p1_IncludeLanguage.configure(selectmode=MULTIPLE, width=9, height=5)
p1_IncludeLanguage.grid(row=0, column=0)

btnGet = Button(page1,text="Get Selection",command=get_selection)
btnGet.grid()

languages = ["English", "German", "French", "Italian", "Portuguese"]

for lang in languages:
    p1_IncludeLanguage.insert(END, lang)



main.mainloop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章