tkinter學習-滾動條
阿新 • • 發佈:2017-08-06
conf .config llb for oot 循環插入數據 scrollbar rom 表示
閱讀目錄
- Listbox 以列表的形式顯示
- Scrollbar 滾動條
- Scale 更滾動條很相似,但更精準
Listbox:
說明:列表框控件,在Listbox窗口小部件是用來顯示一個字符串列表給用戶
屬性:創建一個Listbox組件的時候,它是空的,首先是添加文本進去
insert():有兩個參數,第一個是插入的索引號,第二個是插入的字符串
from tkinter import *
root = Tk()
var = StringVar()
var.set([‘A‘,‘B‘,‘C‘,‘D‘]) #定義一個變量,賦值,然後再給listvariable
thelb = Listbox(root,listvariable=var).pack()
mainloop()
結果:
當然,使用delete()方法是刪除列表中的項目,重用的操作是刪除所有的項目:Listbox.delete(0,END)
也可以刪除指定的項目,用ACTIVE
from tkinter import *
root = Tk()
thelb = Listbox(root,height=15) #這裏表示顯示15行
thelb.pack()
for i in range(100):
thelb.insert(END,i)
#這個ACTIVE是一個特殊的索引號,表示當前被選中的項目
thebu = Button(root,text=‘刪除‘,command = lambda x = thelb: x.delete(ACTIVE)).pack()
mainloop()
結果:
利用for循環插入數據,這裏獲取光標所選中的東西用 curselection()方法
from tkinter import *
root = Tk()
var1 = StringVar() #定義一個變量用來接收
Label(root,bg=‘yellow‘,textvariable=var1,width=8).pack()
thelb = Listbox(root)
thelb.pack()
for i in [‘王昭君‘,‘莊周‘,‘呂布‘,‘亞瑟‘]:
thelb.insert(END,i)
def show():
value = thelb.get(thelb.curselection()) #獲取光標在這個listbox上選定的值
var1.set(value)
Button(root,text=‘獲取‘,command=show).pack()
mainloop()
結果:
Scrollbar:
說明:滾動條控件,當內容超過可視化區域時使用,如列表框
屬性:為了在某個組件上安裝滾動條,需要做這兩件事情:
1,設置該組件的 yscrollbarcommand 選項為 Scrollbar組件的set() 方法
2,設置Scrollbar 組件的 command 選項為該組件的 yview() 方法
from tkinter import *
root = Tk()
sb = Scrollbar(root)
sb.pack(side=RIGHT,fill=Y)
lb = Listbox(root,yscrollcommand= sb.set)
for i in range(1000):
lb.insert(END,i)
lb.pack(side=RIGHT)
sb.config(command=lb.yview)
mainloop()
結果:
Scale:
說明:範圍控件,顯示一個數值刻度,為輸出限定範圍的數字區間
屬性:指定一個範圍,用from_,to,
from tkinter import *
root = Tk()
Scale(root,from_=0,to=42).pack()
Scale(root,from_=0,to=200,orient = HORIZONTAL).pack()
mainloop()
結果:
當然,還有其他屬性,orient,控制滑塊的方位,HORIZONTAL(水平),VERTICAL(垂直)
通過resolution選項可以控制分辨率(步長),通過tickinterval選項控制刻度
from tkinter import *
root = Tk()
l = Label(root,text=‘‘,bg=‘yellow‘,width=10)
l.pack()
def show(v):
l.config(text=‘長度為:‘ + v) #這個是改變label標簽的text
Scale(root,from_=0,to=66,tickinterval=3,resolution=3,length=200,orient=VERTICAL).pack()
Scale(root,from_=0,to=100,tickinterval=5,resolution=5, length=500,orient=HORIZONTAL,command=show).pack() #這個時候會產生一個參數,傳給函數就行
mainloop()
結果:
參考文獻:
小甲魚的python教學視頻
tkinter學習-滾動條