python tkinter listbox_Python Tkinter Listbox和Combobox控件用法

Listbox 代表一个列表框,用户可通过列表框来选择一个列表项。ttk 模块下的 Combobox 则是 Listbox 的改进版,它既提供了单行文本框让用户直接输入(就像 Entry 一样),也提供了下拉列表框供用户选择(就像 Listbox 一样),因此它被称为复合框。

程序创建 Listbox 起码需要两步:

创建 Listbox 对象,并为之执行各种选项。Listbox 除支持大部分通用选项之外,还支持 selectmode 选项,用于设置 Listbox 的选择模式。

调用 Listbox 的 insert(self, index, *elements) 方法来添加选项。从最后一个参数可以看出,该方法既可每次添加一个选项,也可传入多个参数,每次添加多个选项。index 参数指定选项的插入位置,它支持 END(结尾处)、ANCHOR(当前位置)和 ACTIVE(选中处)等特殊索引。

Listbox 的 selectmode 支持的选择模式有如下几种:

'browse':单选模式,支持按住鼠标键拖动来改变选择。

'multiple':多边模式。

'single':单边模式,必须通过鼠标键单击来改变选择。

'extended':扩展的多边模式,必须通过 CtrL 或 Shift 键辅助实现多选。

下面程序示范了 Listbox 的基本用法:

from tkinter import * # 导入ttk from tkinter import ttk class App: def __init__(self, master): self.master = master self.initWidgets() def initWidgets(self): topF = Frame(self.master) topF.pack(fill=Y, expand=YES) # 创建Listbox组件 self.lb = Listbox(topF) self.lb.pack(side=LEFT, fill=Y, expand=YES) for item in ['Python', 'Kotlin', 'Swift', 'Ruby']: self.lb.insert(END, item) # 或直接使用多个元素来插入 self.lb.insert(ANCHOR, 'Python', 'Kotlin', 'Swift', 'Ruby') # 创建Scrollbar组件,设置该组件与self.lb的纵向滚动关联 scroll = Scrollbar(topF, command=self.lb.yview) scroll.pack(side=RIGHT, fill=Y) # 设置self.lb的纵向滚动影响scroll滚动条 self.lb.configure(yscrollcommand=scroll.set) f = Frame(self.master) f.p

你可能感兴趣的:(python,tkinter,listbox)