Skip to content

Combobox 下拉选项框

ttk.Combobox 控件结合了文本字段值的弹出的下拉列表。此小部件是 Entry 的子类。

除了从 Widget 继承的方法:Widget.cget()Widget.configure()Widget.identify()Widget.instate()Widget.state(),以及继承自 Entry: Entry.bbox() 的以下方法,Entry.delete()Entry.icursor()Entry.index()Entry.inset()Entry.selection()Entry.xview(),它有一些其他方法,在 ttk.Combobox 中描述 。

此小部件接受以下特定选项:

选项描述
exportselection布尔值。如果设置,则窗口小部件选择链接到窗口管理器选择(例如,可以通过调用Misc.selection_get返回)。
justify指定文本在窗口小部件中的对齐方式。“left”,“center” 或 “right” 之一。
height以行为单位指定弹出列表框的高度。
postcommand在显示值之前立即调用的脚本(可能已在 Misc.register 中注册)。它可以指定要显示的值。
state"normal”,“readnoly” 或 “disabled” 之一。在 “readonly” 状态下,可能无法直接编辑该值,并且用户只能从下拉列表中选择值。在“normal”状态下,文本字段可直接编辑。在“disabled”状态下,不可能进行交互。
textvariable指定其值链接到窗口小部件值的名称。只要与该名称关联的值发生更改,窗口小部件值就会更新,反之亦然。请参阅tkinter.StringVar。
values指定要在下拉列表框中显示的值列表
width指定一个整数值,指示输入窗口的所需宽度,以小部件字体的平均大小字符表示。

ttk.Combobox

如果指定了 newindex,则将组合框值设置为元素位置 newindex。否则,返回当前值的索引,如果当前值不在值列表中,则返回 -1

  • get() 返回组合框的当前值。
  • set(value) 将组合框的值设置为value。
python
import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.geometry('500x300')
number_int_var = tk.StringVar()

# 创建一个下拉列表
numberChosen = ttk.Combobox(root, textvariable=number_int_var)

# 设置下拉列表的值
numberChosen['values'] = (1, 2, 4, 42, 100)

# 设置其在界面中出现的位置  column代表列   row 代表行
numberChosen.pack()

# 设置下拉列表默认显示的值,0为 numberChosen['values'] 的下标值
numberChosen.current(0)


def func():
    print(number_int_var.get())


tk.Button(root, text='打印选中内容', command=func).pack()

root.mainloop()

image-20210221160641901