Python Tkinter帧对象将不会栅格化
遇到了一个问题,我在一个基本的绘画程序中创建了一个框架对象 获取错误的实例化代码如下所示:Python Tkinter帧对象将不会栅格化,python,tkinter,widget,Python,Tkinter,Widget,遇到了一个问题,我在一个基本的绘画程序中创建了一个框架对象 获取错误的实例化代码如下所示: from tkinter import * from Menu import Menu class Application(Frame): def __init__(self, master=None): Frame.__init__(self,master) self.grid() self.createWidgets() def cr
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()缺少1个必需的位置参数:“Frame”
菜单
对象位于此处:
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
)时,网格方法会出现以下错误:
AttributeError:“非类型”对象没有属性“网格”
我觉得我错过了使用框架的一个关键部分,但我不确定是什么。建议?您似乎希望
菜单
成为一个类,因此使用\uuuu init\uuuu
方法将其定义为类。但是您将菜单
定义为一个函数,因此存储在其中的所有函数都定义为只在函数中使用的代码。将def菜单
更改为class菜单
,这样就可以了。您似乎希望菜单
是一个类,因此使用\uuu init\uuuu
方法将其定义为类。但是您将菜单
定义为一个函数,因此存储在其中的所有函数都定义为只在函数中使用的代码。将def菜单
更改为class菜单
,应该没问题。您想让菜单
成为类还是函数?您已将其定义为函数(def
),但将其实现为类(\uuuu init\uuuu
)。您打算将菜单
作为类还是函数?您已将其定义为函数(def
),但将其实现为类(\uuuu init\uuuu
),不客气!你能验证一下我的答案吗?不客气!你能核实一下我的答案吗?