被告知使用 tkinter Checkbutton 的 select 方法。它不起作用。如果存储的设置为真,我该如何检查它?
Was told to use select method of tkinter Checkbutton. It doesn't work. How do I have it chacked if the stored setting is true?
我正在尝试为我的应用制作 GUI,但在尝试进行设置 Toplevel 时遇到了障碍。此 Toplevel 带有选项卡和设置按钮,它们以相同状态开始,它们各自的设置与上次 settings/defaults.
存储时相同
这是我目前遇到的异常:
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
代码中,select()
有效,而且我看到其他一些人也有同样的问题,不确定是什么原因造成的(也许你使用 ttk.Checkbutton
) ,但这里有一个解决方法:
- 首先将
BooleanVar()
分配给您的复选按钮:
var = BooleanVar()
....
fs_butt = Checkbutton(tab,variable=var,......) #same for ttk.Checkbutton(..) too
- 现在将变量的值设为
True
,设为select,False
设为deselect:
if settings['Fullscreen'].get():
var.set(True)
或者您使用的 ttk.Checkbutton
没有 select()
和 deselect()
我正在尝试为我的应用制作 GUI,但在尝试进行设置 Toplevel 时遇到了障碍。此 Toplevel 带有选项卡和设置按钮,它们以相同状态开始,它们各自的设置与上次 settings/defaults.
存储时相同这是我目前遇到的异常:
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
代码中,select()
有效,而且我看到其他一些人也有同样的问题,不确定是什么原因造成的(也许你使用 ttk.Checkbutton
) ,但这里有一个解决方法:
- 首先将
BooleanVar()
分配给您的复选按钮:
var = BooleanVar()
....
fs_butt = Checkbutton(tab,variable=var,......) #same for ttk.Checkbutton(..) too
- 现在将变量的值设为
True
,设为select,False
设为deselect:
if settings['Fullscreen'].get():
var.set(True)
或者您使用的 ttk.Checkbutton
没有 select()
和 deselect()