0
我正在工作n具有滚动框架的项目。它可以让我为框架添加小部件,但我无法滚动框架并显示其余的小部件。我已将我的代码与其他可滚动的框架进行在线比较,但我无法注意到它们之间的差异。任何人都能看到解决方案。可滚动框架Python Tkinter
代码:
from Tkinter import *
import ttk
import os
class GUI(Frame):
def __init__(self, parent):
Frame.__init__(self,parent)
self.pack(fill=BOTH, expand=YES)
def gameView(self):
self.mainFrame = Frame(self)
self.mainFrame.pack(side=TOP)
self.scroller = ttk.Scrollbar(self.mainFrame, orient=VERTICAL)
self.scroller.pack(side=RIGHT, fill=Y)
self.canvas = Canvas(self.mainFrame, bd=0)
self.canvas.pack(fill=BOTH, side=LEFT)
self.viewArea = Frame(self.canvas, bg="Pink")
self.viewArea.pack(side=TOP, fill=BOTH)
self.canvas.config(yscrollcommand=self.scroller.set)
self.scroller.config(command=self.canvas.yview)
self.canvas.create_window((0,0), window=self.viewArea, anchor=NW, width=783, height=650)
self.viewArea.bind("<Configure>", self.scrollCom)
self.itemHolder = Frame(self.viewArea, bg="Pink")
self.itemHolder.pack(side=TOP)
self.gameGather()
def scrollCom(self, event):
self.canvas.config(scrollregion=self.canvas.bbox("all"), width=783, height=650)
def gameGather(self):
for i in range(0, 50):
label = Label(self.viewArea, text="Pie")
label.pack(side=TOP)
root = Tk()
root.title("School Vortex 2.0")
root.geometry("800x650")
root.resizable(0,0)
gui = GUI(root)
gui.gameView()
root.mainloop()
如果您创建了[MCVE](http://www.stackoverflow.com/help/mcve),它将有所帮助。例如,PIL真的需要重现这个问题吗?菜单栏是必需的吗? –
@BryanOakley是的,菜单栏和图像是需要的,因为它们在滚动区域内。我使用PIL作为图像。 –
但是,重现问题的必要图像?如果删除图像并插入文字标签,问题是否仍然出现?如果删除菜单,问题是否仍然出现?难道你不能简单地创建一个循环来为调试这个问题添加一堆标签或按钮到框架中吗?另外,什么是'GameData'? –