Python Tkinter Listbox

返回 Python GUI 编程


描述

Listbox 控件用于显示项目列表,用户可以从中选择多个项目。


语法

这是创建此小部件的简单语法 -

w = Listbox ( master, option, ... )

参数

  • master - 这代表父窗口。
  • options - 这是此小部件最常用的选项列表。这些选项可以用作以逗号分隔的键值对。
序号 选项 说明
1 bg 显示在标签和指示器后面的正常背景颜色。
2 bd 指标周围边框的大小。默认值为 2 像素。
3 cursor 当鼠标悬停在列表框上时出现的光标。
4 font 用于列表框中文本的字体。
5 fg 用于列表框中文本的颜色。
6 height 列表框中显示的行数(不是像素!)。默认值为 10。
7 highlightcolor 当小部件具有焦点时,焦点突出显示中显示的颜色。
8 highlightthickness 焦点高光的厚度。
9 relief 选择三维边框阴影效果。默认为沉没。
10 selectbackground 用于显示选定文本的背景颜色。
11 selectmode 确定可以选择多少项目,以及鼠标拖动如何影响选择 -
BROWSE - 通常,您只能从列表框中选择一行。如果您单击一个项目然后拖动到不同的行,选择将跟随鼠标。这是默认设置。
SINGLE - 您只能选择一行,并且不能拖动鼠标。无论您单击按钮 1 的位置,都会选择该行。
MULTIPLE - 您可以一次选择任意数量的行。单击任何行可切换它是否被选中。
EXTENDED - 您可以通过单击第一行并拖动到最后一行来一次选择任何相邻的行组。
12 width 小部件的宽度(以字符为单位)。默认值为 20。
13 xscrollcommand 如果您想允许用户水平滚动列表框,您可以将列表框小部件链接到水平滚动条。
14 yscrollcommand 如果您想允许用户垂直滚动列表框,您可以将列表框小部件链接到垂直滚动条。

方法

列表框对象的方法包括

序号 方法 描述
1 activate (index) 选择由给定索引指定的行。
2 curselection() 返回包含所选元素的行号的元组,从 0 开始计数。如果未选择任何内容,则返回一个空元组。
3 delete (first, last=None) 删除索引在 [first, last] 范围内的行。如果省略第二个参数,则删除带有索引的单行。
4 get (first, last=None) 返回一个元组,其中包含从头到尾(包括首尾)索引的行的文本。如果省略第二个参数,则返回最接近第一个的行的文本。
5 index (i) 如果可能,定位列表框的可见部分,使包含索引 i 的行位于小部件的顶部。
6 insert (index, *elements) 在由索引指定的行之前的列表框中插入一个或多个新行。如果要将新行添加到列表框的末尾,请使用 END 作为第一个参数。
7 nearest (y) 返回相对于列表框小部件最接近 y 坐标 y 的可见线的索引。
8 see (index) 调整列表框的位置,使索引引用的行可见。
9 size() 返回列表框中的行数。
10 xview() 要使列表框水平滚动,请将关联的水平滚动条的命令选项设置为此方法。
11 xview_moveto(fraction) 滚动列表框,使其最长行宽度的最左边部分位于列表框左侧之外。分数在 [0,1] 范围内。
12 xview_scroll (number, what) 水平滚动列表框。对于 what 参数,使用 UNITS 按字符滚动,或 PAGES 按页滚动,即按列表框的宽度滚动。number 参数告诉滚动多少。
13 yview() 要使列表框可垂直滚动,请将关联的垂直滚动条的命令选项设置为此方法。
14 yview_moveto(fraction) 滚动列表框,使其最长线的宽度的顶部部分位于列表框的左侧之外。分数在 [0,1] 范围内。
15 yview_scroll (number, what) 垂直滚动列表框。对于 what 参数,使用 UNITS 按行滚动,或 PAGES 按页滚动,即按列表框的高度滚动。number 参数告诉滚动多少。

示例

from Tkinter import *
import tkMessageBox
import Tkinter

top = Tk()

Lb1 = Listbox(top)
Lb1.insert(1, "Python")
Lb1.insert(2, "Perl")
Lb1.insert(3, "C")
Lb1.insert(4, "PHP")
Lb1.insert(5, "JSP")
Lb1.insert(6, "Ruby")

Lb1.pack()
top.mainloop()

测试显示结果如下:

tkinter listbox


返回 Python GUI 编程

查看笔记

扫码一下
查看教程更方便