Tkinter | TypeError: __init__() takes from 1 to 2 positional arguments but 3 were given

Tkinter | TypeError: __init__() takes from 1 to 2 positional arguments but 3 were given

代码旨在从 tkinter 条目小部件 cam1 获取输入,并分配给 cam1_name,然后将其附加到具有关联回调函数的列表中。显然,它不会并抛出上面的错误。任何帮助,将不胜感激。谢谢!


import tkinter as tk
from tkinter import ttk

root = tk.Tk()    # my main window

def cam1_name_func():
    cam1_name.get()
    amendations["camOne"] = cam1_name

cam1_name = tk.StringVar()
cam1 = ttk.Checkbutton(root, cam1_name).pack()  # error happens on this line

root.mainloop()

要修复错误,您需要为 Checkbutton 的第二个参数使用 text 关键字。 Checkbutton 的所有选项都需要在父 window 参数之后列为 key=value

import tkinter as tk
from tkinter import ttk

root = tk.Tk()    # my main window

def cam1_name_func():
    cam1_name.get()
    amendations["camOne"] = cam1_name

cam1_name = tk.StringVar()
cam1 = ttk.Checkbutton(root, text=cam1_name).pack()

root.mainloop()