【问题标题】:Python & Tkinter - Creating a menu within a defPython & Tkinter - 在 def 中创建菜单
【发布时间】:2017-05-01 13:44:43
【问题描述】:

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

我可以成功地在主基础根目录上创建菜单,但是我不能在被调用的函数中执行它,因为它给了我这个错误:“AttributeError: 'function' object has no attribute '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' object has no attribute '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)

【问题讨论】:

    标签: python tkinter menu sqlite


    【解决方案1】:

    您正试图在这行代码中使用一个类作为小部件的父级:

    mainMenu = menu(Core)
    

    您需要提供一个有效的小部件,例如NewRoot

    【讨论】:

    • 刚刚意识到我的错误。现在我遇到了在菜单中添加命令的问题。
    猜你喜欢
    • 1970-01-01
    • 2017-06-18
    • 2013-12-24
    • 2016-03-16
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    相关资源
    最近更新 更多