Python 3 – Tkinter列表框
列表框小部件用于显示一个列表,用户可以从中选择多个项目
语法
这是创建该小部件的简单语法 –
w = Listbox ( master, 选项, ... )
参数
- master − 这代表父窗口。
-
options − 这是该小部件的最常用选项列表。这些选项可以用逗号分隔的键值对形式使用。
序号 | 选项 & 描述 |
---|---|
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 如果要允许用户垂直滚动列表框,则可以将列表框小部件链接到垂直滚动条上。 |
方法
列表框对象上的方法包括 –
序号 | 选项和描述 |
---|---|
1 | activate ( index ) 选择由给定索引指定的行。 |
2 | curselection() 返回一个包含选定元素或元素的行号的元组,从0开始计算。如果没有选定内容,则返回一个空元组。 |
3 | delete ( first, last = None ) 删除索引范围在[first,last]内的行。如果省略第二个参数,则删除索引为first的单个行。 |
4 | get ( first, last = None ) 返回一个元组,其中包含索引从first到last(包括)的行的文本。如果省略第二个参数,则返回最接近first的行的文本。 |
5 | index ( i ) 如果可能,将列表框的可见部分定位为包含索引i的行位于小部件顶部。 |
6 | insert ( index, *elements ) 将一个或多个新行插入到索引指定的行之前的列表框中。如果要将新行添加到列表框的末尾,请使用END作为第一个参数。 |
7 | nearest ( y ) 返回相对于列表框小部件的y坐标,最接近的可见行的索引。 |
8 | see ( index ) 调整列表框的位置,使索引引用的行处于可见状态。 |
9 | size() 返回列表框中行的数量。 |
10 | xview() 要使列表框横向可滚动,请将关联水平滚动条的命令选项设置为此方法。 |
11 | xview_moveto ( fraction ) 滚动列表框,使其最长行的宽度的最左端分数在列表框的左侧之外。分数在[0,1]范围内。 |
12 | xview_scroll ( number, what ) 水平滚动列表框。对于what参数,请使用UNITS以按字符滚动,或使用PAGES以按页面滚动,即按列表框的宽度。数字参数表示要滚动的数量。 |
13 | yview() 要使列表框垂直可滚动,请将关联垂直滚动条的命令选项设置为此方法。 |
14 | yview_moveto ( fraction ) 滚动列表框,使其最长行的宽度的最上面部分在列表框的顶部之外。分数在[0,1]范围内。 |
15 | yview_scroll ( number, what ) 垂直滚动列表框。对于what参数,请使用UNITS以按行滚动,或使用PAGES以按页面滚动,即按列表框的高度。数字参数表示要滚动的数量。 |
示例
请尝试自己使用以下示例 –
# !/usr/bin/python3
from tkinter import *
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()
结果
运行上述代码时,将产生以下结果 –