【问题标题】:Entry selection list with tkinter带有 tkinter 的条目选择列表
【发布时间】:2011-11-22 19:10:00
【问题描述】:

如何使用 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()

【问题讨论】:

    标签: python forms tkinter tkinter-entry


    【解决方案1】:

    您正在寻找组合框小部件,TTK 提供此小部件:

    http://docs.python.org/dev/library/tkinter.ttk.html

    http://www.tkdocs.com/widgets/combobox.html

    【讨论】:

      【解决方案2】:

      您所要求的称为组合框。如果您使用的是旧版本的 python (tix.ComboBox。对于 python 2.7 及更高版本,您可以使用ttk.combobox(链接指向最新的 python 3.x 文档,但它与 python 2.7 中的小部件相同)。

      【讨论】:

      • 非常感谢 - 这就是我使用旧文档 (effbot.org/tkinterbook) 所得到的。组合框就在 Python 库参考的第 962 页,2.7.2 版,2011 年 9 月 8 日。
      猜你喜欢
      • 2013-07-30
      • 2021-07-19
      • 1970-01-01
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多