您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何使用Tkinter中的Scrollbar實現滾動條的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇如何使用Tkinter中的Scrollbar實現滾動條文章都會有所收獲,下面我們一起來看看吧。
前一篇文章提供了封裝之后的ScrollbarEx類,大大簡化了Scrollbar控件的使用。但是這種做法并不是Tkinter想定的用法,Tkinter想定的方式是和其他控件綁定在一起使用
首先構建一個標題為'ScrollListBox'的標簽框控件。這個控件實在是太簡單了,因此只是在這里順便提一下。
frame1 = LabelFrame(root, text='ScrollListBox')frame1.grid(row=0, column=0, columnspan=1, sticky=W+E)
構建一個列表框控件。
# create a listbox for demo.
lb = Listbox(frame1,
activestyle='dotbox',
height=8, width=20)
# add items
for i in range(0,20):
lb.insert(END, str(i))
# bind event
lb.bind('<<ListboxSelect>>',
lambda e: label.config(text=str(lb.curselection())))
lb.grid(row=0, column=0)
接下來是重點。代碼首先構建一個垂直滾動條,并將command指定為Listbox的yview方法。參考前一篇說明的內容可以想象,yview方法中應該是對各種滾動通知的處理;在前一篇的處理中,當位置計算完成之后需要調用Scrollbar的set方法,這個set方法是通過代碼指定給Listbox的yscrollcommand屬性。
scroll_ly = Scrollbar(frame1, orient=VERTICAL, command=lb.yview)scroll_ly.grid(row=0, column=1, sticky=N+S)lb['yscrollcommand']=scroll_ly.set
同樣的方法構建右側的標簽框:
frame2 = LabelFrame(root, text='ScrollText')frame2.grid(row=0, column=1, columnspan=1, sticky=W+E+N+S)
構建文本控件。需要注意的是wrap屬性被指定為NONE。
# create text widget.text = Text(frame2, height = 10, width=20, wrap=NONE)text.grid(row=0, column=0)
分別構建垂直和水平兩個方向滾動條:
scroll_ty = Scrollbar(frame2, orient=VERTICAL, command=text.yview)
scroll_ty.grid(row=0, column=1, sticky=N+S)
text['yscrollcommand']=scroll_ty.set
scroll_tx = Scrollbar(frame2, orient=HORIZONTAL, command=text.xview)
scroll_tx.grid(row=1, column=0, sticky=E+W)
text['xscrollcommand']=scroll_tx.set
如果Text的wrap屬性沒有指定為NONE,則水平滾動條不會起作用。
關于“如何使用Tkinter中的Scrollbar實現滾動條”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“如何使用Tkinter中的Scrollbar實現滾動條”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。