pycharm - “TypeError: __init__() 需要 2 到 3 个位置参数,但给出了 9 个”但我在一个新的项目文件中进行了测试并且工作正常
问题描述
我试图让选项菜单在我当前的项目文件上工作,但我不断收到错误 TypeError: init () takes from 2 to 3 positional arguments 但给出了 9 个所以我想看看它是否是代码,我制作了一个新的项目文件并将其与我目前拥有的项目的先前版本一起粘贴到那里,它工作得非常好。关于为什么我在当前项目文件中出现错误的任何想法?这是代码
def Pantsize():
# Drop box for pant size
# Figure out how to label for pant sizes
PantsClick = StringVar()
PantsClick.set("Select pant size")
PantsDrop = OptionMenu(AppWindow, PantsClick, "Select pant size", "XS", "S", "M", "L", "XL")
PantsDrop.place(relx=0.3, rely=0.25)
解决方案
根据我从这个网站上读到的内容。
tkinter.OptionMenu 采用 2 或 3 个参数。
tk.OptionMenu(parent_frame, variable, choice1, choice2, ...)
因此,您的第三个参数"Select pant size"
现在是不必要的,因为这已经是您的第二个参数PantsClick
,因为在第 5 行PantsClick.set("Select pant size")
。
PantsDrop = OptionMenu(AppWindow, PantsClick, "XS", "S", "M", "L", "XL")
如果上面的答案仍然不起作用。尝试添加一个新变量size_options
,然后将所有选项放在一个元组中。然后*
在将它作为参数传递时使用该元组。
def Pantsize():
# Drop box for pant size
# Figure out how to label for pant sizes
PantsClick = StringVar()
PantsClick.set("Select pant size")
size_options = ( "XS", "S", "M", "L", "XL" )
PantsDrop = OptionMenu(AppWindow, PantsClick, *size_options)
PantsDrop.place(relx=0.3, rely=0.25)
推荐阅读
- c++ - C++ MySQL 连接器没有 utf8
- r - 创建没有年份的月份和日期序列
- javascript - 使用javascript在firebase Web中成功创建具有电子邮件和密码的用户时如何向屏幕提示消息
- c++ - 结构中的向量导致分段错误
- node.js - 无法使用 nodemailer node.js api 发送邮件?
- swift - 子视图控制器和边距
- python - *[ ... ] 语法是什么意思?
- android - Android:登录特定的 aspx 网站并从中检索数据
- swift - 尝试从 URL 文件 Swift 获取轨道长度时崩溃
- javascript - 如何在 JavaScript 中添加需要递归计算的新属性