画布上的滚动条,其中包含多个框架

时间:2017-03-18 15:14:40

标签: python canvas tkinter

晚上好, 我使用sqlite在Python中工作,以创建许多练习(数学)的数据库。通过搜索,我想在具有多个帧的画布中显示所有练习(每个帧包含带有其图像gif的练习)。所以我制作了一个似乎工作正常的滚动条。但是,当我想要显示所有练习(85)时,它会停在数字82处,我不知道为什么......我们可以在框架中放置小部件的数量有限制吗? 这是我的代码的和平(抱歉我的英语不好):

class liste_exercices(Toplevel):
def __init__(self,parent,liste_numeros):
Toplevel.__init__(self,parent)
self.parent=parent
self.liste_numeros=liste_numeros
self.geometry("1140x1080+800+0")
# donne le titre de la fenêtre
self.title("Nombre d' exercices trouvés : "+str(len(self.liste_numeros)))
self.vsb=Scrollbar(self,orient=VERTICAL,width=20)
self.vsb.grid(row=0,column=1,sticky=N+S)
self.c=Canvas(self,width=1240,yscrollcommand=self.vsb.set)
self.c.grid(row=0,column=0,sticky="news")
#on attache le canvas à la scrollbar
self.vsb.config(command=self.c.yview)
# make the canvas expandable
self.grid_rowconfigure(0, weight=1)
self.grid_columnconfigure(0, weight=1)
self.fr=Frame(self.c)
# on crée une fenêtre pour mettre le Frame self.fr dans le canvas self.c
self.c.create_window(0,0,window=self.fr)
global liste_choix_exercices
liste_choix_exercices=[] ### liste vide des exercices de l'utilisateur
self.afficher()  
def afficher(self):
   r=0
   for self.i in range(len(self.liste_numeros)):
       r+=1
       print("j'affiche l'image self.i = ",self.liste_numeros[self.i])
       enonce_exercice(self.fr,self.liste_numeros[self.i]).grid(row=r)
   self.fr.update_idletasks()
   self.c.config(scrollregion=self.c.bbox(ALL))

enonce_exercice是一个显示exercice图像的类。 非常感谢。

0 个答案:

没有答案