Python_給tkinter的frame加滾動條

問題背景:當界面需要顯示的內容較多時,需要用到滾動條Scrollbar,官方文檔說Scrollbar只能與以下控件(canvas, entry, listbox, text)相結合。但是,如果我想讓Scrollbar和frame相結合呢?


解決辦法是:把frame放在canvas裏面(比如填滿整個canvas),canvas與scrollbar結合,這樣滾動canvas就等於滾動frame了。

舉個栗子

canvas=Canvas(root,width=200,height=180,scrollregion=(0,0,520,520)) #創建canvas
canvas.place(x = 75, y = 265) #放置canvas的位置
frame=Frame(canvas) #把frame放在canvas裏
frame.place(width=180, height=180) #frame的長寬,和canvas差不多的
vbar=Scrollbar(canvas,orient=VERTICAL) #豎直滾動條
vbar.place(x = 180,width=20,height=180)
vbar.configure(command=canvas.yview)
hbar=Scrollbar(canvas,orient=HORIZONTAL)#水平滾動條
hbar.place(x =0,y=165,width=180,height=20)
hbar.configure(command=canvas.xview)
canvas.config(xscrollcommand=hbar.set,yscrollcommand=vbar.set) #設置  
canvas.create_window((90,240), window=frame)  #create_window

當然,如果是純文本的滾動,可以選擇scrolltext組件,它的函數和text一樣,可以參考一下這個鏈接 https://www.jianshu.com/p/abea88607525

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章