Tkinter 組件Scrollbar的具體使用

Scrollbar(滾動條)組件用於滾動一些組件的可見范圍,根據方向可分為垂直滾動條和水平滾動條。Scrollbar 組件常常被用於實現文本、畫佈和列表框的滾動。

何時使用 Scrollbar 組件?

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

用法

下邊例子我們演示如何使用垂直滾動條。為瞭在某個組件上安裝垂直滾動條,你需要做兩件事:

1. 設置該組件的 yscrollbarcommand 選項為 Scrollbar 組件的 set() 方法;

2. 設置 Scrollbar 組件的 command 選項為該組件的 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()

分析:當 Listbox 組件的可視范圍發生改變的時候,Listbox 組件通過調用 set() 方法通知 Scrollbar 組件。而當用戶操縱滾動條的時候,將自動調用 Listbox 組件的 yview() 方法。

添加水平滾動條方法跟上邊一樣,隻是將 yscrollcommand 改為 xscrollcommand,yview 改為 xview 即可。

參數

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

master — 父組件

**options — 組件選項,下方表格詳細列舉瞭各個選項的具體含義和用法:

選項 含義
activebackground 1. 指定當鼠標在上方飄過的時候滑塊和箭頭的背景顏色
2. 默認值由系統指定
activerelief 1. 指定當鼠標在上方飄過的時候滑塊的樣式
2. 默認值是 "raised"
3. 可以選擇 "flat","sunken","groove","ridge"
background 1. 指定背景顏色
2. 默認值由系統指定
bg 跟 background 一樣
borderwidth 1. 指定邊框寬度
2. 默認值是 0
bd 跟 borderwidth 一樣
command 1. 當滾動條更新時回調的函數
2. 通常的是指定對應組件的 xview() 或 yview() 方法
cursor 1. 指定當鼠標在上方飄過的時候的鼠標樣式
2. 默認值由系統指定
elementborderwidth 1. 指定滾動條和箭頭的邊框寬度
2. 默認值是 -1(表示使用 borderwidth 選項的值)
highlightbackground 1. 指定當滾動條沒有獲得焦點的時候高亮邊框的顏色
2. 默認值由系統指定
highlightcolor 1. 指定當滾動條獲得焦點的時候高亮邊框的顏色
2. 默認值由系統指定
highlightthickness 1. 指定高亮邊框的寬度
2. 默認值是 0(不帶高亮邊框)
jump 1. 指定當用戶拖拽滾動條時的行為
2. 默認值是 False,滾動條的任何一絲變動都會即刻調用 command 選項指定的回調函數
3. 設置為 True 則當用戶松開鼠標才調用
orient 1. 指定繪制 "horizontal"(垂直滾動條)還是 "vertical"(水平滾動條)
2. 默認值是 VERTICAL
relief 1. 指定邊框樣式
2. 默認值是 "sunken"
3. 可以選擇 "flat","raised","groove","ridge"
repeatdelay 1. 該選項指定鼠標左鍵點擊滾動條凹槽的響應時間
2. 默認值是 300(毫秒)
repeatinterval 1. 該選項指定鼠標左鍵緊按滾動條凹槽時的響應間隔
2. 默認值是 100(毫秒)
takefocus 1. 指定使用 Tab 鍵可以將焦點移到該 Scrollbar 組件上
2. 默認是開啟的,可以將該選項設置為 False 避免焦點在此組件上
troughcolor 1. 指定凹槽的顏色
2. 默認值由系統指定
width 1. 指定滾動條的寬度
2. 默認值是 16 像素

方法

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

delta(deltax, deltay)
— 給定一個鼠標移動的范圍 deltax 和 deltay(像素為單位,deltax 表示水平移動量,deltay 表示垂直移動量),然後該方法返回一個浮點類型的值(范圍 -1.0 ~ 1.0)
— 這通常在鼠標綁定上使用,用於確定當用戶拖拽鼠標時滑塊的如何移動

fraction(x, y)
— 給定一個像素坐標 (x, y),該方法返回最接近給定坐標的滾動條位置(范圍 0.0 ~ 1.0)

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

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

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

到此這篇關於Tkinter 組件Scrollbar的具體使用的文章就介紹到這瞭,更多相關Tkinter Scrollbar內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: