Tkinter Frame对象不会网格化

时间:2018-04-23 15:22:14

标签: python tkinter widget

遇到一个问题,试图将我在初级绘画程序中创建的框架对象网格化。

获取错误的实例化代码在这里:

public static final String  s="123";

我收到的错误与from tkinter import * from Menu import Menu class Application(Frame): def __init__(self, master=None): Frame.__init__(self,master) self.grid() self.createWidgets() def createWidgets(self): #Imports each of the frames from the collection from the various widgets menu=Menu() menu.grid(row=0,column=0,columnspan=2) app=Application() app.master.title=('Sample Application') app.mainloop() 操作有关,并且是:

menu=Menu()

TypeError: Menu() missing 1 required positional argument: 'Frame' 对象在这里:

Menu

我的困惑是如何发生位置错误。当我给菜单一个框架(from tkinter import * import CommandStack def Menu(Frame): def __init__(self, master=None): Frame.__init__(self,master) self.createWidgets() def createWidgets(self): self.new=Button(self,command=CommandStack.new()) self.save=Button(self,command=CommandStack.save()) self.save.grid(row=0,column=1) self.load=Button(self,command=CommandStack.load()) self.load.grid(row=0,column=2) )时,我会得到这个错误:

self

我觉得我很想忘记使用框架的关键部分,但我不确定是什么。建议?

1 个答案:

答案 0 :(得分:2)

您似乎希望Menu成为一个类,因此使用__init__方法将其定义为类。但是你改为将Menu定义为一个函数,因此你存储在里面的所有函数都被定义为你只在函数中使用的代码。将def Menu更改为class Menu,应该没问题。