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

選擇三維邊框陰影效果。預設為 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 座標 y 最接近的可見行的索引。

8

see ( index )

調整列表框的位置,以便顯示索引所引用的行。

9

size()

返回列表框中的行數。

10

xview()

要使列表框水平滾動,請將關聯的水平捲軸的 command 選項設定為此方法。

11

xview_moveto ( fraction )

滾動列表框,使其最長行的最左邊部分位於列表框左側之外。fraction 的範圍為 [0,1]。

12

xview_scroll ( number, what )

水平滾動列表框。對於 what 引數,使用 UNITS 按字元滾動,或使用 PAGES 按頁滾動(即按列表框的寬度滾動)。number 引數指示滾動的數量。

13

yview()

要使列表框垂直滾動,請將關聯的垂直捲軸的 command 選項設定為此方法。

14

yview_moveto ( 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 listbox
python_gui_programming.htm
廣告