Python& Tkinter - 在def中创建菜单

时间:2017-05-01 13:44:43

标签: python tkinter menu sqlite

我正在尝试在我的一个名为“Core”的函数中创建一个菜单。用户成功登录帐户后会调用此函数,我只是希望他们在新窗口中创建使用这些菜单。

我可以在主基础根上成功创建菜单,但我无法在被调用的函数中执行它,因为它给了我这个错误:“AttributeError:'function'对象没有属性'tk'”

这是函数本身:( myGUI是主根)

def Core():
myGUI.withdraw()
NewRoot = Toplevel(myGUI,
                   bg="powderblue")
NewRoot.geometry('800x500')
NewRoot.resizable(width=False, height=False)

它正在“IF”循环中使用,例如,如果用户输入正确的凭据,则运行上述函数。

这是在IF循环中。

myGUI.after(1000, Core)

问题:我希望此菜单显示在名为“Core”的函数中,但正如我之前所说,我收到此错误:“ AttributeError:'function'对象没有属性'tk'

# Creating a menu
mainMenu = Menu(Core)
Core.config(menu=mainMenu)
CoreContentMenu = Menu(mainMenu)
mainMenu.add_cascade(label="Support", menu=CoreContentMenu)
CoreContentMenu.add_command=Label("Frequent Asked Questions", command=lambda: GoFrame(FAQ))

我知道错误就在这里,因为我正在调用该函数,但是我怎样才能使它工作?任何帮助非常感谢!

mainMenu = Menu(CoreContent)

1 个答案:

答案 0 :(得分:0)

您正尝试在此代码行中使用类作为窗口小部件的父级:

mainMenu = menu(Core)

您需要提供有效的窗口小部件,例如NewRoot