欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中Tkinter組件Listbox的具體使用

 更新時(shí)間:2022年01月11日 14:41:20   作者:來自江南的你  
本文主要介紹了Python中Tkinter組件Listbox的具體使用,Listbox組件用于顯示一個(gè)選擇列表,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Listbox(列表框)組件用于顯示一個(gè)選擇列表。Listbox 只能包含文本項(xiàng)目,并且所有的項(xiàng)目都需要使用相同的字體和顏色。根據(jù)組件的配置,用戶可以從列表中選擇一個(gè)或多個(gè)選項(xiàng)。

何時(shí)使用 Listbox 組件?

Listbox 組件通常被用于顯示一組文本選項(xiàng),Listbox 組件跟 Checkbutton 和 Radiobutton 組件類似,不過 Listbox 是以列表的形式來提供選項(xiàng)的(后兩個(gè)是通過按鈕的形式)。

用法

當(dāng)你創(chuàng)建一個(gè) Listbox 組件的時(shí)候,它是空的,所以第一件要做的事就是添加一行或多行文本進(jìn)去。我們使用 insert() 方法添加文本,該方法有兩個(gè)參數(shù):第一個(gè)參數(shù)是插入的索引號(hào),第二個(gè)參數(shù)是插入的字符串。索引號(hào)通常是項(xiàng)目的序號(hào)(0 是列表中第一項(xiàng)的序號(hào))。

不過你也可以使用一些特殊的索引號(hào):比如 ACTIVE 表示選中的項(xiàng)目(如果 Listbox 允許多選,那么它表示最后一個(gè)被選中的項(xiàng)目);又如 END 表示 Listbox 的最后一行,所以當(dāng)要插入一個(gè)項(xiàng)目到列表時(shí)可以使用 END:

import tkinter as tk
 
master = tk.Tk()
 
# 創(chuàng)建一個(gè)空列表
theLB = tk.Listbox(master)
theLB.pack()
 
# 往列表里添加數(shù)據(jù)
for item in ["雞蛋", "鴨蛋", "鵝蛋", "李狗蛋"]:
        theLB.insert("end", item)
 
 
master.mainloop()

使用 delete() 方法刪除列表中的項(xiàng)目,最常用的操作是刪除列表中的所有項(xiàng)目(更新列表時(shí)你需要做的事兒):

listbox.delete(0, "end")
listbox.insert("end", newitem) #插入新的項(xiàng)目

當(dāng)然你也可以刪除指定的項(xiàng)目,下邊例子使用一個(gè)獨(dú)立按鈕來刪除 ACTIVE 狀態(tài)的項(xiàng)目:

import tkinter as tk
 
master = tk.Tk()
 
# 創(chuàng)建一個(gè)空列表
theLB = tk.Listbox(master)
theLB.pack()
 
# 往列表里添加數(shù)據(jù)
for item in ["雞蛋", "鴨蛋", "鵝蛋", "李狗蛋"]:
        theLB.insert("end", item)
        
theButton = tk.Button(master, text="刪除", command=lambda x=theLB: x.delete("active"))
theButton.pack()
 
master.mainloop()

     

Listbox 組件根據(jù) selectmode 選項(xiàng)提供了四種不同的選擇模式:"single"(單選)、"browse"(也是單選,但拖動(dòng)鼠標(biāo)或通過方向鍵可以直接改變選項(xiàng))、"multiple"(多選)和 "extended"(也是多選,但需要同時(shí)按住 Shift 鍵或 Ctrl 鍵或拖拽鼠標(biāo)實(shí)現(xiàn))。默認(rèn)是 "browse"。

參數(shù)

Listbox(master=None, **options) (class)

master -- 父組件

**options -- 組件選項(xiàng),下方表格詳細(xì)列舉了各個(gè)選項(xiàng)的具體含義和用法:

選項(xiàng)含義
background1. 設(shè)置背景顏色
2. 默認(rèn)值由系統(tǒng)指定
bg跟 background 一樣
borderwidth1. 指定 Listbox 的邊框?qū)挾?br />2. 默認(rèn)值由系統(tǒng)指定,通常是 2 像素
bd跟 borderwidth 一樣
cursor1. 指定當(dāng)鼠標(biāo)在 Listbox 上飄過的時(shí)候的鼠標(biāo)樣式
2. 默認(rèn)值由系統(tǒng)指定
exportselection1. 指定選中的項(xiàng)目文本是否可以被復(fù)制到剪貼板
2. 默認(rèn)值是 True
3. 可以修改為 False 表示不允許復(fù)制項(xiàng)目文本
font1. 指定 Listbox 中文本的字體
2. 默認(rèn)值由系統(tǒng)指定
foreground1. 設(shè)置 Listbox 的文本顏色
2. 默認(rèn)值由系統(tǒng)指定
fg跟 foreground 一樣
height1. 設(shè)置 Listbox 顯示的行數(shù)(不是像素)
2. 默認(rèn)值是 10
highlightbackground1. 指定當(dāng) Listbox 沒有獲得焦點(diǎn)的時(shí)候高亮邊框的顏色
2. 默認(rèn)值由系統(tǒng)指定,通常是標(biāo)準(zhǔn)背景顏色
highlightcolor1. 指定當(dāng) Listbox 獲得焦點(diǎn)的時(shí)候高亮邊框的顏色
2. 默認(rèn)值由系統(tǒng)指定
highlightthickness1. 指定高亮邊框的寬度
2. 默認(rèn)值是 1
listvariable1. 指向一個(gè) StringVar 類型的變量,該變量存放 Listbox 中所有的項(xiàng)目
2. 在 StringVar 類型的變量中,用空格分隔每個(gè)項(xiàng)目,例如 var.set("雞蛋 鴨蛋 鵝蛋 李狗蛋")
relief1. 指定邊框樣式
2. 默認(rèn)值是 "sunken"
selectbackground1. 指定當(dāng)某個(gè)項(xiàng)目被選中的時(shí)候背景顏色
2. 默認(rèn)值由系統(tǒng)指定
selectborderwidth1. 指定當(dāng)某個(gè)項(xiàng)目被選中的時(shí)候邊框的寬度
2. 默認(rèn)是由 selectbackground 指定的顏色填充,沒有邊框
3. 如果設(shè)置了此選項(xiàng),Listbox 的每一項(xiàng)會(huì)相應(yīng)變大,被選中項(xiàng)為 "raised" 樣式
selectforeground1. 指定當(dāng)某個(gè)項(xiàng)目被選中的時(shí)候文本顏色
2. 默認(rèn)值由系統(tǒng)指定
selectmode1. 決定選擇的模式
2. 四種不同的選擇模式:"single"(單選)、"browse"(也是單選,但拖動(dòng)鼠標(biāo)或通過方向鍵可以直接改變選項(xiàng))、"multiple"(多選)和 "extended"(也是多選,但需要同時(shí)按住 Shift 鍵或 Ctrl 鍵或拖拽鼠標(biāo)實(shí)現(xiàn))
3. 默認(rèn)是 "browse"
setgrid1. 指定一個(gè)布爾類型的值,決定是否啟用網(wǎng)格控制
2. 默認(rèn)值是 False
takefocus1. 指定該組件是否接受輸入焦點(diǎn)(用戶可以通過 tab 鍵將焦點(diǎn)轉(zhuǎn)移上來)
2. 默認(rèn)值是 True
width1. 設(shè)置 Listbox 的寬度(單位是文本單元)
2. 文本單元是英文字母的平均寬度(所以如果該選項(xiàng)設(shè)置為 2,那么是無法容納"ww"這兩個(gè)寬度大于平均寬度的字母的)
3. 默認(rèn)值是 20
xscrollcommand1. 為 Listbox 組件添加一條水平滾動(dòng)條
2. 將此選項(xiàng)與 Scrollbar 組件相關(guān)聯(lián)即可
yscrollcommand1. 為 Listbox 組件添加一條垂直滾動(dòng)條
2. 將此選項(xiàng)與 Scrollbar 組件相關(guān)聯(lián)即可

方法

activate(index)
-- 將給定索引號(hào)對(duì)應(yīng)的選項(xiàng)激活(在其文本下方畫一條下劃線)

bbox(index)
-- 返回給定索引號(hào)對(duì)應(yīng)的選項(xiàng)的邊框
-- 返回值是一個(gè)以像素為單位的 4 元祖表示邊框:(xoffset, yoffset, width, height)
-- xoffset 和 yoffset 表示距離左上角的偏移位置
-- 返回的 width 是文本的實(shí)際寬度(像素為單位)
-- 如果指向的選項(xiàng)是不可見的,那么返回值是 None

curselection()
-- 返回一個(gè)元組,包含被選中的選項(xiàng)的序號(hào)(從 0 開始)
-- 如果沒有選中任何選項(xiàng),返回一個(gè)空元組

delete(first, last=None)
-- 刪除參數(shù) first 到 last 范圍內(nèi)(包含 first 和 last)的所有選項(xiàng)
-- 如果忽略 last 參數(shù),表示刪除 first 參數(shù)指定的選項(xiàng)

get(first, last=None)
-- 返回一個(gè)元組,包含參數(shù) first 到 last 范圍內(nèi)(包含 first 和 last)的所有選項(xiàng)的文本
-- 如果忽略 last 參數(shù),表示返回 first 參數(shù)指定的選項(xiàng)的文本

index(index)
-- 返回與 index 參數(shù)相應(yīng)的選項(xiàng)的序號(hào)(例如 lb.index("end"))

insert(index, *elements)
-- 添加一個(gè)或多個(gè)項(xiàng)目到 Listbox 中
-- 使用 lb.insert("end") 添加新選項(xiàng)到末尾

itemcget(index, option)
-- 獲得 index 參數(shù)指定的項(xiàng)目對(duì)應(yīng)的選項(xiàng)(由 option 參數(shù)指定)

itemconfig(index, **options)
-- 設(shè)置 index 參數(shù)指定的項(xiàng)目對(duì)應(yīng)的選項(xiàng)(由可變參數(shù) **option 指定)

nearest(y)
-- 返回與給定參數(shù) y 在垂直坐標(biāo)上最接近的項(xiàng)目的序號(hào)

scan_dragto(x, y)
-- 見下方 scan_mark(x, y)

scan_mark(x, y)
-- 使用這種方式來實(shí)現(xiàn) Listbox 內(nèi)容的滾動(dòng)
-- 需要將鼠標(biāo)按鈕事件及當(dāng)前鼠標(biāo)位置綁定到 scan_mark(x, y) 方法,然后再將 <motion> 事件及當(dāng)前鼠標(biāo)位置綁定到 scan_dragto(x, y) 方法,就可以實(shí)現(xiàn) Listbox 在當(dāng)前位置和 sacn_mack(x, y) 指定的位置 (x, y) 之間滾動(dòng)

see(index)
-- 調(diào)整列表框的位置,使得 index 參數(shù)指定的選項(xiàng)是可見的

select_anchor(index)
-- 與 selection_anchor(index) 相同,見下方解釋

select_clear(first, last=None)
-- 與 selection_clear(first, last=None) 相同,見下方解釋

select_includes(index)
-- 與 selection_includes(index) 相同,見下方解釋

select_set(first, last=None)
-- 與 selection_set(first, last=None) 相同,見下方解釋

selection_anchor(index)
-- 在 index 參數(shù)的位置下一個(gè)錨點(diǎn),此后你就可以通過特殊索引 "anchor" 訪問

selection_clear(first, last=None)
-- 取消參數(shù) first 到 last 范圍內(nèi)(包含 first 和 last)選項(xiàng)的選中狀態(tài)
-- 如果忽略 last 參數(shù),則只取消 first 參數(shù)指定選項(xiàng)的選中狀態(tài)

selection_includes(index)
-- 返回 index 參數(shù)指定的選項(xiàng)的選中狀態(tài)
-- 返回 1 表示選中,返回 0 表示未選中

selection_set(first, last=None)
-- 設(shè)置參數(shù) first 到 last 范圍內(nèi)(包含 first 和 last)選項(xiàng)為選中狀態(tài)
-- 如果忽略 last 參數(shù),則只設(shè)置 first 參數(shù)指定選項(xiàng)為選中狀態(tài)

size()
-- 返回 Listbox 組件中選項(xiàng)的數(shù)量

xview(*args)
-- 該方法用于在水平方向上滾動(dòng) Listbox 組件的內(nèi)容,一般通過綁定 Scollbar 組件的 command 選項(xiàng)來實(shí)現(xiàn)(具體操作參考:Scrollbar)
-- 如果第一個(gè)參數(shù)是 "moveto",則第二個(gè)參數(shù)表示滾動(dòng)到指定的位置:0.0 表示最左端,1.0 表示最右端
--如果第一個(gè)參數(shù)是 "scroll",則第二個(gè)參數(shù)表示滾動(dòng)的數(shù)量,第三個(gè)參數(shù)表示滾動(dòng)的單位(可以是 "units" 或 "pages"),例如:xview("scroll", 3, "pages")表示向右滾動(dòng)三行

xview_moveto(fraction)
-- 跟 xview("moveto", fraction) 一樣

xview_scroll(number, what)
-- 跟 xview("scroll", number, what) 一樣

yview(*args)
-- 該方法用于在垂直方向上滾動(dòng) Listbox 組件的內(nèi)容,一般通過綁定 Scollbar 組件的 command 選項(xiàng)來實(shí)現(xiàn)(具體操作參考:Scrollbar)
-- 如果第一個(gè)參數(shù)是 "moveto",則第二個(gè)參數(shù)表示滾動(dòng)到指定的位置:0.0 表示最頂端,1.0 表示最底端
-- 如果第一個(gè)參數(shù)是 "scroll",則第二個(gè)參數(shù)表示滾動(dòng)的數(shù)量,第三個(gè)參數(shù)表示滾動(dòng)的單位(可以是 "units" 或 "pages"),例如:yview("scroll", 3, "pages") 表示向下滾動(dòng)三頁

yview_moveto(fraction)
-- 跟 yview("moveto", fraction) 一樣

yview_scroll(number, what)
-- 跟 yview("scroll", number, what) 一樣

到此這篇關(guān)于Python中Tkinter組件Listbox的具體使用的文章就介紹到這了,更多相關(guān)Python Tkinter Listbox內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python處理菜單消息操作示例【基于win32ui模塊】

    Python處理菜單消息操作示例【基于win32ui模塊】

    這篇文章主要介紹了Python處理菜單消息操作,結(jié)合實(shí)例形式分析了Python基于win32ui模塊實(shí)現(xiàn)菜單的創(chuàng)建及菜單項(xiàng)響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • pytorch模型轉(zhuǎn)onnx模型的方法詳解

    pytorch模型轉(zhuǎn)onnx模型的方法詳解

    很多時(shí)候有pytorch模型轉(zhuǎn)onnx模型的必要,比如用tensorRT加速的時(shí)候,下面這篇文章主要給大家介紹了關(guān)于pytorch模型轉(zhuǎn)onnx模型的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Python利用hashlib實(shí)現(xiàn)文件MD5碼的批量存儲(chǔ)

    Python利用hashlib實(shí)現(xiàn)文件MD5碼的批量存儲(chǔ)

    這篇文章主要為大家詳細(xì)介紹了如何用Python和hashlib實(shí)現(xiàn)文件MD5碼的批量存儲(chǔ)功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2023-05-05
  • python實(shí)現(xiàn)簡(jiǎn)單名片管理系統(tǒng)

    python實(shí)現(xiàn)簡(jiǎn)單名片管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單名片管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • python實(shí)現(xiàn)簡(jiǎn)單猜單詞游戲

    python實(shí)現(xiàn)簡(jiǎn)單猜單詞游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單猜單詞游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 在Django的模板中使用認(rèn)證數(shù)據(jù)的方法

    在Django的模板中使用認(rèn)證數(shù)據(jù)的方法

    這篇文章主要介紹了在Django的模板中使用認(rèn)證數(shù)據(jù)的方法,Django是最具人氣的Python web開發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • Python字典“鍵”和“值”的排序5種方法

    Python字典“鍵”和“值”的排序5種方法

    這篇文章主要介紹了5種Python字典“鍵”和“值”的排序方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 對(duì)python中的iter()函數(shù)與next()函數(shù)詳解

    對(duì)python中的iter()函數(shù)與next()函數(shù)詳解

    今天小編就為大家分享一篇對(duì)python中的iter()函數(shù)與next()函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python中的super如何使用

    python中的super如何使用

    這篇文章主要介紹了python中的super,python中的super,名為超類,可以簡(jiǎn)單的理解為執(zhí)行父類的__init__函數(shù),本文就著重看下super的具體作用,需要的朋友可以參考下
    2022-03-03
  • Python re.sub 反向引用的實(shí)現(xiàn)

    Python re.sub 反向引用的實(shí)現(xiàn)

    反向引用指的是在指定替換結(jié)果的過程中,可以引用原始字符串中的匹配到內(nèi)容,本文主要介紹了反向引用的設(shè)置方法,感興趣的可以了解一下
    2021-07-07

最新評(píng)論