파이썬 3.5.2와 함께 tkinter 8.6을 사용하고 있습니다. 확인란을 클릭하면 사용자가 항목 상자에 무언가를 쓸 수 있도록 GUI를 만들려고합니다. 그러나 나는 오류가 발생합니다. 아래는 제 코드입니다. 나는 write_in 체크 박스를 클릭했을 때 다음과 같은 오류를 얻고있다 그러나확인란 위젯을 사용하여 항목 위젯 상태를 사용 안 함으로 설정하지 않도록 설정하려면 어떻게해야합니까?
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();
: 여기
" 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