我写了一点代码,但我做不到,因为我的一生都在想它为什么不起作用。我试图用动态内容的滚动条制作一个框架,但是由于某些原因,滚动条无法滚动。在
import scrolledframe
from Tkinter import *
class app(Tk):
def __init__(self, parent):
Tk.__init__(self, parent)
self.parent=parent
self.initialize()
populateinterior(self.sframe.interior)
def initialize(self):
self.grid()
self.grid_columnconfigure(0, weight=1)
self.grid_rowconfigure(0,weight=1)
self.resizable(True,True)
self.sframe = scrolledframe.VerticalScrolledFrame(self)
self.sframe.grid()
def OnButtonClick():
appinstance.sframe.interior.buttons.append(Button(appinstance.sframe.interior, text=u'Click meh!',command=OnButtonClick))
appinstance.sframe.interior.buttons[-1].grid(row=len(appinstance.sframe.interior.buttons)+1,column=0)
def populateinterior(self):
self.grid()
self.buttons=[]
self.buttons.append(Button(self, text=u'Click meh!',command=OnButtonClick))
self.buttons[-1].grid(row=len(self.buttons)+1,column=0)
if __name__=="__main__":
appinstance=app(None)
appinstance.title("All dem appz belong to meh")
appinstance.mainloop()
滚动框不是我自己写的,但不管怎么说,它是这样的:
^{pr2}$有什么线索吗? (我知道这是丑陋的代码,但这只是概念的证明)
问题是populateinterior中的第一行:
在此上下文中,
self
是滚动框架的内部小部件。您正在对它调用grid
,这不应该这样做。内部框架不得在帆布内包装、放置或网格。相反,它必须是使用canvas方法create_window
(由VerticalScrolledFrame类处理)创建的canvas对象。当您在内部框架上调用grid
时,您正在破坏画布和框架之间的连接。在相关问题 更多 >
编程相关推荐