Pycharm &引用;TypeError:“uuu init”取2到3个位置参数,但给出了9个;但我在一个新的项目文件中进行了测试,效果很好

Pycharm &引用;TypeError:“uuu init”取2到3个位置参数,但给出了9个;但我在一个新的项目文件中进行了测试,效果很好,pycharm,typeerror,optionmenu,tkinter.optionmenu,Pycharm,Typeerror,Optionmenu,Tkinter.optionmenu,我正试图让optionmenu在我当前的项目文件上工作,但我一直收到错误 TypeError:init()接受2到3个位置参数,但给出了9个 所以我想看看它是否是代码,我制作了一个新的项目文件,并将它与我目前拥有的项目的先前版本一起粘贴在那里,它工作得非常好。关于我当前项目文件中出现错误的原因,有什么想法吗? 这是密码 def Pantsize(): # Drop box for pant size # Figure out how to label for

我正试图让optionmenu在我当前的项目文件上工作,但我一直收到错误 TypeError:init()接受2到3个位置参数,但给出了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, ...)
因此,您的第三个参数
“选择裤子尺寸”
现在不需要了,因为这已经是您的第二个参数
pantslick
,因为在第5行
pantslick.set(“选择裤子尺寸”)

如果上面的答案仍然不起作用。尝试添加一个新变量
size\u 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)

太棒了,成功了!我将在pantslick.set上使用您的建议,并在外部列出清单以清理此代码。您仍然需要添加tk。在选项菜单前面,但它也可以工作!谢谢
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)