tkinter學習-滾動條


閱讀目錄

  • 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教學視頻

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM