Python 被告知使用tkinter Checkbutton的选择方法。它不起作用。如果存储的设置为真,如何检查?
我正在尝试为我的应用程序制作一个GUI,但在尝试创建顶级设置时遇到了一个障碍。此顶层带有选项卡和设置按钮,它们以与上次设置/默认设置相同的状态开始存储各自的设置 以下是我目前得到的例外情况: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
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)