Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter帧对象将不会栅格化_Python_Tkinter_Widget - Fatal编程技术网

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
),不客气!你能验证一下我的答案吗?不客气!你能核实一下我的答案吗?