Tkinter 列表框

Tkinter 列表框

列表框小部件用于显示一个用户可以选择多个项目的项目列表。

语法

下面是创建此小部件的简单语法 –

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

参数

  • master − 这代表父窗口。

  • options − 这里是此小部件最常用选项的列表。这些选项可以用逗号分隔的键值对形式使用。

Sr.No 选项和描述
1 Bg 标签和指示器后显示的正常背景颜色。
2 Bd 指示器周围的边框大小。默认为2像素。
3 Cursor 当鼠标悬停在列表框上时出现的光标。
4 Font 用于列表框中文本的字体。
5 Fg 用于列表框中文本的颜色。
6 Height 列表框中显示的行数(而非像素!)。默认为10。
7 Highlightcolor 部件获得焦点时显示的焦点高亮颜色。
8 Highlightthickness 焦点高亮的厚度。
9 Relief 选择三维边框阴影效果。默认为SUNKEN。
10 Selectbackground 用于显示所选文本的背景颜色。
11 Selectmode 确定可以选择多少项以及模式对鼠标的拖动如何影响选择 –

BROWSE − 通常,您只能在列表框中选择一行。如果单击项目,然后拖动到不同的行,则选择将跟随鼠标。这是默认值。
SINGLE − 您只能选择一行,无法拖动鼠标。无论单击按钮1的位置在哪里,都会选择该行。
MULTIPLE − 您可以同时选择任意数量的行。单击任何行将切换其是否已选择。
EXTENDED − 您可以通过单击第一行并拖动到最后一行来一次选择任何相邻的一组行。

12 Width 部件的宽度(以字符为单位)。默认为20。
13 Xscrollcommand 如果您希望允许用户水平滚动列表框,则可以将列表框部件链接到水平滚动条。
14 Yscrollcommand 如果您希望允许用户垂直滚动列表框,则可以将列表框部件链接到垂直滚动条。

方法

listbox对象的方法包括 –

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

示例

自己尝试以下示例-

from tkinter import *

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 列表框

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程