Python 被告知使用tkinter Checkbutton的选择方法。它不起作用。如果存储的设置为真,如何检查?

Python 被告知使用tkinter Checkbutton的选择方法。它不起作用。如果存储的设置为真,如何检查?,python,python-3.x,tkinter,tk,Python,Python 3.x,Tkinter,Tk,我正在尝试为我的应用程序制作一个GUI,但在尝试创建顶级设置时遇到了一个障碍。此顶层带有选项卡和设置按钮,它们以与上次设置/默认设置相同的状态开始存储各自的设置 以下是我目前得到的例外情况: Exception in Tkinter callback Traceback (most recent call last): File "C:\Program Files\Python39\lib\tkinter\__init__.py", line 1885, in __cal

我正在尝试为我的应用程序制作一个GUI,但在尝试创建顶级设置时遇到了一个障碍。此顶层带有选项卡和设置按钮,它们以与上次设置/默认设置相同的状态开始存储各自的设置

以下是我目前得到的例外情况:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\tkinter\__init__.py", line 1885, in __call__
    return self.func(*args)
  File "KMIU 4\kmiu_dv7.pyw", line 38, in settings
    sett.display(main)
  File "KMIU 4\bk\settings.py", line 54, in __init__
    self.windowsettings(tab2)
  File "KMIU 4\bk\settings.py", line 23, in windowsettings
    if settings['Fullscreen'].get(): fs_butt.select()
AttributeError: 'Checkbutton' object has no attribute 'select'
以下是导致问题的代码位:

def windowsettings(self, tab):
        global settings
        text = Label(tab, text ="sample text")
        text.grid(columnspan = 2)
        fs_butt = Checkbutton(
            tab, 
            text="Fullscreen",
            command=lambda: settings['Fullscreen'].set(not settings['Fullscreen'].get()))
        print(settings)
        fs_butt.grid(row=1)
        if settings['Fullscreen'].get(): fs_butt.select()
在我使用tk.Checkbutton的代码中,选择works,我看到一些其他人也有同样的问题,不确定是什么原因导致了这个问题,可能是您使用了ttk.Checkbutton,但这里有一个解决方法:

首先,将布尔值指定给您的checkbutton: 现在,要将变量的值设置为True、select和False以取消选择:
或者您可以使用ttk.check按钮,该按钮没有选择和取消选择

I更多的代码可能会有所帮助。我还认为您需要传递BooleanVar作为fs_butt的变量,并使用您的_var_name.setTrue来选择它?您似乎在使用ttk checkbutton而不是tk checkbutton。这就是你在做的吗?如果是,则错误是正确的:ttk checkbutton没有选择方法。请提供完整的表格,包括进口。这是使用通配符导入的危险之一。在代码顶部,我从tkinter和tkinter导入*。ttk如何确保使用正确的复选按钮,那么区别是什么呢?应该是将tkinter作为tk导入,然后使用tk.Checkbutton,我认为最后一条语句接管了第一条语句,因此您的Checkbutton来自ttk?哦,重构时间太长了。。。无论如何谢谢你@人工非智能也更好地使用从tkinter导入ttk和ttk.Checkbutton
var = BooleanVar()
....
fs_butt = Checkbutton(tab,variable=var,......) #same for ttk.Checkbutton(..) too
if settings['Fullscreen'].get():
    var.set(True)