Я использую tkinter 8.6 с python 3.5.2, и я пытаюсь создать графический интерфейс, так что, когда я нажимаю флажок, он позволяет пользователю что-то писать в поле ввода. Однако я получаю сообщение об ошибке. Ниже мой код.Как изменить состояние виджета записи с отключенного, чтобы оно не было отключено с помощью виджета флажка?
from tkinter import *
from tkinter import ttk
def quit():
mainframe.quit()
#Write in Function
def write():
write_in.state(['!disabled']) #Getting Error Here
root = Tk()
root.title("Voting Booth")
#Global variables
var = StringVar()
#Create main widget
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
#Additional widgets
ttk.Label(mainframe, textvariable=var, font=('bold')).grid(column=2, row=0)
vote = ttk.Button(mainframe, text="Vote", command = quit).grid(column=4, row=5, sticky=E)
don_box = ttk.Checkbutton(mainframe, text="Donald Trump").grid(column=2, row=1, sticky=W)
stein_box = ttk.Checkbutton(mainframe, text="Jill Stein").grid(column=2, row=3, sticky=W)
write_box = ttk.Checkbutton(mainframe, text="Write in:", command = write).grid(column=2, row=4, sticky=W)
write_in = ttk.Entry(mainframe, width = 20, state=DISABLED).grid(column=3, row=4, sticky=W)
#Setting variables and widgets
var.set("Presidential Nominees")
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
root.mainloop();
Однако я получаю следующее сообщение об ошибке, когда я нажимаю write_in флажок:
" File "/usr/lib/python3.5/tkinter/__init__.py", line 1553, in __call__
return self.func(*args)
File "./booth_gui.py", line 13, in write
write_in.state(['!disabled'])
AttributeError: 'NoneType' object has no attribute 'state' "
Я пробовал это, но он все равно дал мне ошибку, когда я нажал на этот флажок, который вызывает функцию записи. Я не уверен, что мне нужно изменить сама функцию или если я не импортирую правильные библиотеки. – pdm
Я не был уверен, так как я не могу использовать tkinter прямо сейчас, и я не знаю ttk ... Какая ошибка это дает вам? Этот 'config' не существует или что' state' недействителен или что 'NORMAL' не определен? –
AttributeError: объект «NoneType» не имеет атрибута «config» – pdm