我正在尝试学习如何使用 Python 制作带有菜单的基本 GUI。
我一直在关注 2014 年的教程 ( https://www.youtube.com/watch?v=PSm-tq5M-Dc ),但自教程发布以来似乎已经更新了一些内容。
虽然我已经找到了几个问题的解决方法,但仍有一些问题我无法弄清楚。
其中最大的问题是“TypeError:add_cascade()缺少1个必需的位置参数:'self'”
错误。
我能找到的所有内容似乎都与我的代码具有相似的语法,但我似乎无法运行它。我认为这可能是 python 版本的差异(我正在运行 python 3.7
),尽管我也可能只是在教程中遗漏了一些内容。
import tkinter
def doNothing():
print("DO SOMTHING USEFULL... please")
root=tkinter.Tk()
menu=tkinter.Menu(root)
root.config(menu=menu)
subMenu=tkinter.Menu(menu, tearoff=0)
tkinter.Menu.add_cascade(label="file", menu=subMenu)
subMenu.add_command(label="New Project...", command=doNothing)
subMenu.add_command(label="New...", command=doNothing)
subMenu.add_seperator()
subMenu.add_command(label="Exit", command=doNothing)
editMenu=tkinter.Menu(menu)
tkinter.Menu.add_cascade(label="Edit", menu=editMenu)
editMenu.add_command(label="Redo", command=doNothing)
root.mainloop()
附注我知道我不必输入“tkinter”。到处都是,但我似乎无法让“from Tkinter import *”为我工作。
如何解决以下错误?
最佳答案
我相信你想做的是:
import tkinter
def doNothing():
print("DO SOMTHING USEFULL... please")
"TypeError: add_cascade() missing 1 required positional argument: 'self'" error.
root=tkinter.Tk()
menu=tkinter.Menu(root)
root.config(menu=menu)
subMenu=tkinter.Menu(menu, tearoff=0)
menu.add_cascade(label="file", menu=subMenu)
subMenu.add_command(label="New Project...", command=doNothing)
subMenu.add_command(label="New...", command=doNothing)
subMenu.add_separator()
subMenu.add_command(label="Exit", command=doNothing)
editMenu=tkinter.Menu(menu)
menu.add_cascade(label="Edit", menu=editMenu)
editMenu.add_command(label="Redo", command=doNothing)
root.mainloop()
“TypeError:add_cascade()缺少 1 个必需的位置参数:'self'”错误。 意味着 add_cascade 应该在 tkinter.Menu 的实例上使用,而不是在类上使用它本身,所以您需要首先创建将成为 tkinter.Menu 实例的对象,您这样做了,但没有使用它来添加级联。
编辑:
我修复了“seperator”:D 不是正确的“separator”;)
关于python - add_cascade() 缺少 1 个必需的位置参数 : self (Python: Tkinter error),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54384159/