如何在 tkinter 中创建组合框数组?
How to create Combobox array in tkinter?
我有一个输入 n=5
,那么我可以创建 5 个 Combobox
并将它们组合在一起形成类似数组的东西吗?
我只想通过其索引 i
获取每个 Combobox 的值,就像 box[i].get()
.
请帮我解决这个问题!
组合框是列表框和输入字段的组合。它是 Tkinter 小部件之一,其中包含从选项列表指向 select 的向下箭头。它可以帮助用户根据显示的选项列表 select。当用户单击输入字段上的下拉箭头时,滚动列表框的弹出窗口将显示在输入字段下方。只有当列表框中的选项被 selected 时,selected 选项才会显示在输入字段中。
语法:
combobox = ttk.Combobox(master, option=value, ...)
这是您可以执行的操作。
from tkinter import *
from tkinter import ttk
x=int(input("Enter number of Comboboxes: "))
root=Tk()
box_dict={}
def change_icon( event, j):
print("-------------------------")
print ("Value: ",box_dict[j].get(),f"at Combobox: {box_dict[j]}")
for i in range(x):
Label(root,text=f"Combobox Number: {i}").pack()
box=ttk.Combobox(root,state="readonly",values=['1','2','3','4'])
box_dict[i] = box
box.pack()
box.bind("<<ComboboxSelected>>",lambda event, j=i: change_icon(event, j))
root.mainloop()
您可以使用列表框小部件 combobox.Below 是 python Tkinter 中自动完成组合框的示例。
def checkkey(event):
value = event.widget.get()
print(value)
# get data from l
if value == '':
data = l
else:
data = []
for item in l:
if value.lower() in item.lower():
data.append(item)
update(data)
def update(data):
# clear previous data
lb.delete(0, 'end')
# put new data
for item in data:
lb.insert('end', item)
l = ('C','C++','Java',
'Python','Perl',
'PHP','ASP','JS' )
root = Tk()
e = Entry(root)
e.pack()
e.bind('<KeyRelease>', checkkey)
lb = Listbox(root)
lb.pack()
update(l)
root.mainloop()
我有一个输入 n=5
,那么我可以创建 5 个 Combobox
并将它们组合在一起形成类似数组的东西吗?
我只想通过其索引 i
获取每个 Combobox 的值,就像 box[i].get()
.
请帮我解决这个问题!
组合框是列表框和输入字段的组合。它是 Tkinter 小部件之一,其中包含从选项列表指向 select 的向下箭头。它可以帮助用户根据显示的选项列表 select。当用户单击输入字段上的下拉箭头时,滚动列表框的弹出窗口将显示在输入字段下方。只有当列表框中的选项被 selected 时,selected 选项才会显示在输入字段中。
语法:
combobox = ttk.Combobox(master, option=value, ...)
这是您可以执行的操作。
from tkinter import *
from tkinter import ttk
x=int(input("Enter number of Comboboxes: "))
root=Tk()
box_dict={}
def change_icon( event, j):
print("-------------------------")
print ("Value: ",box_dict[j].get(),f"at Combobox: {box_dict[j]}")
for i in range(x):
Label(root,text=f"Combobox Number: {i}").pack()
box=ttk.Combobox(root,state="readonly",values=['1','2','3','4'])
box_dict[i] = box
box.pack()
box.bind("<<ComboboxSelected>>",lambda event, j=i: change_icon(event, j))
root.mainloop()
您可以使用列表框小部件 combobox.Below 是 python Tkinter 中自动完成组合框的示例。
def checkkey(event):
value = event.widget.get()
print(value)
# get data from l
if value == '':
data = l
else:
data = []
for item in l:
if value.lower() in item.lower():
data.append(item)
update(data)
def update(data):
# clear previous data
lb.delete(0, 'end')
# put new data
for item in data:
lb.insert('end', item)
l = ('C','C++','Java',
'Python','Perl',
'PHP','ASP','JS' )
root = Tk()
e = Entry(root)
e.pack()
e.bind('<KeyRelease>', checkkey)
lb = Listbox(root)
lb.pack()
update(l)
root.mainloop()