Python 3 - Tkinter 列表框

  • 简述

    列表框小部件用于显示项目列表,用户可以从中选择多个项目
  • 句法

    这是创建此小部件的简单语法 -
    
     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 参数告诉滚动多少。
  • 例子

    自己尝试以下示例 -
    
    # !/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()
    
  • 结果

    执行上述代码时,会产生以下结果 -
    TK 列表框