溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Tkinter組件Scrollbar的使用方法有哪些

發(fā)布時(shí)間:2022-01-11 15:17:27 來(lái)源:億速云 閱讀:202 作者:iii 欄目:開發(fā)技術(shù)

這篇“Tkinter組件Scrollbar的使用方法有哪些”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Tkinter組件Scrollbar的使用方法有哪些”文章吧。

Scrollbar(滾動(dòng)條)組件用于滾動(dòng)一些組件的可見范圍,根據(jù)方向可分為垂直滾動(dòng)條和水平滾動(dòng)條。Scrollbar 組件常常被用于實(shí)現(xiàn)文本、畫布和列表框的滾動(dòng)。

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

Scrollbar 組件通常幾乎與 Text 組件、Canvas 組件和 Listbox 組件一起使用,水平滾動(dòng)條還能跟 Entry 組件配合。

用法

下邊例子我們演示如何使用垂直滾動(dòng)條。為了在某個(gè)組件上安裝垂直滾動(dòng)條,你需要做兩件事:

1. 設(shè)置該組件的 yscrollbarcommand 選項(xiàng)為 Scrollbar 組件的 set() 方法;

2. 設(shè)置 Scrollbar 組件的 command 選項(xiàng)為該組件的 yview() 方法。

import tkinter as tk
 
root = tk.Tk()
sb = tk.Scrollbar(root)
sb.pack(side="right", fill="y")
lb = tk.Listbox(root, yscrollcommand=sb.set)
for i in range(1000):
    lb.insert("end", str(i))
lb.pack(side="left", fill="both")
sb.config(command=lb.yview)
root.mainloop()

Tkinter組件Scrollbar的使用方法有哪些

分析:當(dāng) Listbox 組件的可視范圍發(fā)生改變的時(shí)候,Listbox 組件通過(guò)調(diào)用 set() 方法通知 Scrollbar 組件。而當(dāng)用戶操縱滾動(dòng)條的時(shí)候,將自動(dòng)調(diào)用 Listbox 組件的 yview() 方法。

添加水平滾動(dòng)條方法跟上邊一樣,只是將 yscrollcommand 改為 xscrollcommand,yview 改為 xview 即可。

參數(shù)

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

master -- 父組件

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

選項(xiàng)含義
activebackground1. 指定當(dāng)鼠標(biāo)在上方飄過(guò)的時(shí)候滑塊和箭頭的背景顏色
2. 默認(rèn)值由系統(tǒng)指定
activerelief1. 指定當(dāng)鼠標(biāo)在上方飄過(guò)的時(shí)候滑塊的樣式
2. 默認(rèn)值是 "raised"
3. 可以選擇 "flat","sunken","groove","ridge"
background1. 指定背景顏色
2. 默認(rèn)值由系統(tǒng)指定
bg跟 background 一樣
borderwidth1. 指定邊框?qū)挾?br/>2. 默認(rèn)值是 0
bd跟 borderwidth 一樣
command1. 當(dāng)滾動(dòng)條更新時(shí)回調(diào)的函數(shù)
2. 通常的是指定對(duì)應(yīng)組件的 xview() 或 yview() 方法
cursor1. 指定當(dāng)鼠標(biāo)在上方飄過(guò)的時(shí)候的鼠標(biāo)樣式
2. 默認(rèn)值由系統(tǒng)指定
elementborderwidth1. 指定滾動(dòng)條和箭頭的邊框?qū)挾?br/>2. 默認(rèn)值是 -1(表示使用 borderwidth 選項(xiàng)的值)
highlightbackground1. 指定當(dāng)滾動(dòng)條沒有獲得焦點(diǎn)的時(shí)候高亮邊框的顏色
2. 默認(rèn)值由系統(tǒng)指定
highlightcolor1. 指定當(dāng)滾動(dòng)條獲得焦點(diǎn)的時(shí)候高亮邊框的顏色
2. 默認(rèn)值由系統(tǒng)指定
highlightthickness1. 指定高亮邊框的寬度
2. 默認(rèn)值是 0(不帶高亮邊框)
jump1. 指定當(dāng)用戶拖拽滾動(dòng)條時(shí)的行為
2. 默認(rèn)值是 False,滾動(dòng)條的任何一絲變動(dòng)都會(huì)即刻調(diào)用 command 選項(xiàng)指定的回調(diào)函數(shù)
3. 設(shè)置為 True 則當(dāng)用戶松開鼠標(biāo)才調(diào)用
orient1. 指定繪制 "horizontal"(垂直滾動(dòng)條)還是 "vertical"(水平滾動(dòng)條)
2. 默認(rèn)值是 VERTICAL
relief1. 指定邊框樣式
2. 默認(rèn)值是 "sunken"
3. 可以選擇 "flat","raised","groove","ridge"
repeatdelay1. 該選項(xiàng)指定鼠標(biāo)左鍵點(diǎn)擊滾動(dòng)條凹槽的響應(yīng)時(shí)間
2. 默認(rèn)值是 300(毫秒)
repeatinterval1. 該選項(xiàng)指定鼠標(biāo)左鍵緊按滾動(dòng)條凹槽時(shí)的響應(yīng)間隔
2. 默認(rèn)值是 100(毫秒)
takefocus1. 指定使用 Tab 鍵可以將焦點(diǎn)移到該 Scrollbar 組件上
2. 默認(rèn)是開啟的,可以將該選項(xiàng)設(shè)置為 False 避免焦點(diǎn)在此組件上
troughcolor1. 指定凹槽的顏色
2. 默認(rèn)值由系統(tǒng)指定
width1. 指定滾動(dòng)條的寬度
2. 默認(rèn)值是 16 像素

方法

activate(element) 
-- 顯示 element 參數(shù)指定的元素的背景顏色和樣式
-- element 參數(shù)可以設(shè)置為:"arrow1"(箭頭1),"arrow2"(箭頭2)或 "slider"(滑塊)

delta(deltax, deltay)
-- 給定一個(gè)鼠標(biāo)移動(dòng)的范圍 deltax 和 deltay(像素為單位,deltax 表示水平移動(dòng)量,deltay 表示垂直移動(dòng)量),然后該方法返回一個(gè)浮點(diǎn)類型的值(范圍 -1.0 ~ 1.0)
-- 這通常在鼠標(biāo)綁定上使用,用于確定當(dāng)用戶拖拽鼠標(biāo)時(shí)滑塊的如何移動(dòng)

fraction(x, y)
-- 給定一個(gè)像素坐標(biāo) (x, y),該方法返回最接近給定坐標(biāo)的滾動(dòng)條位置(范圍 0.0 ~ 1.0)

get()
-- 返回當(dāng)前滑塊的位置 (a, b)
-- a 值表示當(dāng)前滑塊的頂端或左端的位置,b 值表示當(dāng)前滑塊的底端或右端的位置(范圍 0.0 ~ 1.0)

identify(x, y)
-- 返回一個(gè)字符串表示指定位置下(如果有的話)的滾動(dòng)條部件
-- 返回值可以是:"arrow1"(箭頭1),"arrow2"(箭頭2)、"slider"(滑塊)或 ""(啥都沒有)

set(*args)
-- 設(shè)置當(dāng)前滾動(dòng)條的位置
-- 如果設(shè)置則需要兩個(gè)參數(shù) (first, last),first 表示當(dāng)前滑塊的頂端或左端的位置,last 表示當(dāng)前滑塊的底端或右端的位置(范圍 0.0 ~ 1.0)

以上就是關(guān)于“Tkinter組件Scrollbar的使用方法有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI