python - add_cascade() 缺少 1 个必需的位置参数 : self (Python: Tkinter error)

标签 python tkinter

我正在尝试学习如何使用 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/

相关文章:

python - 如何删除我的 anaconda 环境?

python - 如何在 python 中绘制 4 维数据的 kmeans 聚类?

python 使用 __getitem__ 作为方法

python - 将值附加到 TTK 组合框 ['values' ] 而不重新加载组合框

python - Tkinter 输入字符限制

python - 使用 "ComboboxSelected"的一个函数来读取多个组合框

javascript - 如何在内容可编辑文本框中模拟 'enter'键盘事件

python - 如何将 Peewee 与 Tornado 完美结合使用

Python Tkinter Table适合窗口太多行/列

python - 检查窗口是否在后台 Tkinter