我想做一個帶scrollbar的frame,在網上找了幾個程式改了一下,為什么使用button呼叫函式時能激活滾動條,但是默認加載時呼叫這個函式就無法加載呢。我確認默認加載時這個函式被調到了。但是滾動條就是不顯示。已經卡了兩天了,求大神指點一下
from tkinter import *
class ScrollbarFrame():
def __init__(self,master):
myframe = Frame(master, relief=GROOVE, bd=1, bg='#99FFFF')
myframe.grid(row=0, column=0)
self.canvas = Canvas(myframe, bg='#88FF1F',)
#self.canvas.pack(side="left")
self.myscrollbar = Scrollbar(myframe, orient="vertical", command=self.canvas.yview)
self.myscrollbar.pack(side="right", fill="y")
self.frame = Frame(self.canvas, bg='#6F060F')
self.canvas.create_window((0, 0), window=self.frame, anchor='nw')
#self.canvas.config(width=300, height=300)
self.canvas.config(yscrollcommand=self.myscrollbar.set)
self.canvas.pack(side="left", expand=True, fill=BOTH)
self.data()
self.bt=Button(myframe, text="activate scroll", command=self.myfunction)
self.bt.pack()
self.canvas.bind("<Configure>", self.myfunction())
def data(self,):
for i in range(50):
Label(self.frame, text=i).grid(row=i, column=0)
Label(self.frame, text="my text" + str(i)).grid(row=i, column=1)
Label(self.frame, text="..........").grid(row=i, column=2)
def myfunction(self,):
self.canvas.configure(scrollregion=self.canvas.bbox("all"), )
print(6666)
self.canvas.configure(width=500, height=500)
self.canvas.config(yscrollcommand=self.myscrollbar.set)
root=Tk()
app=ScrollbarFrame(root)
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/8642.html
