如何使用 Python tkinter 生成正常的选择列表(如任何 HTML 表单中的“状态”字段用于邮政地址)?如下图所示,Listbox 小部件始终在一个大框中显示所有选择,如果将高度降低到 1,则在选择时它不会展开列表。OptionMenu 小部件在选择时会正确弹出列表,但在关闭时不会在类似条目的框中显示当前值。Entry 小部件具有所需的外观,但没有关联的值列表。
请不要告诉我 tkinter 无法进行基本的表单选择:-(。
from tkinter import *
class App:
def __init__(self, master):
frame = Frame(master)
frame.pack()
items = ["Apple", "Banana", "Cherry"]
self.list = Listbox(frame, width=8, height=1)
for item in items:
self.list.insert(END, item)
self.list.pack(side=LEFT)
fruit = StringVar()
fruit.set(items[1])
self.menu = OptionMenu(frame, fruit, *items)
self.menu.pack(side=LEFT)
self.entry = Entry(frame, width=8)
self.entry.insert(0, items[2])
self.entry.pack(side=LEFT)
root = Tk()
app = App(root)
root.mainloop()