아래 코드는 내 프로그램의 일부와 문제가 직면 한 부분을 보여줍니다.MessageBox의 Tkinter 버튼 기능 제어
def checkAnswer():
mainAnswer = answer01.get()
if len(mainAnswer) == 0:
messagebox.showwarning(message='Please answer the question!')
return
if int(mainAnswer) != answer:
messagebox.showwarning(message='Incorrect! The correct answer is: ' + str(answer))
else:
nxtquest.config(state=NORMAL)
messagebox.showinfo(message='Correct! :)')question01 = Label(easy)
question01.grid(row=2, column=0)
answer01 = Entry(easy)
answer01.grid(row=3, column=2)
answer01.bind('<Return>', func=lambda e:checkAnswer())
start = Button(easy, text = "Start!", command=ask, bg='green', fg='white')
start.grid(row=3, column=3)
nxtquest = Button(easy, text='Next Question', command=ask)
nxtquest.grid(row=5, column=2)
checkbut = Button(easy, text='Check', command=checkAnswer)
checkbut.grid(row=4, column=2)
#check button and answer01 enabled after start pressed
launch = 1
if launch == 1:
answer01.config(state=DISABLED)
checkbut.config(state=DISABLED)
nxtquest.config(state=DISABLED)
여기에서 고민하는 문제는 내가 프로그램을 실행할 때마다 모든 것이 정상이라는 것입니다. 창이 표시되면 checkbut, nxtquest 및 label 대답은 회색으로 표시됩니다 (비활성화 됨). 시작 버튼은 checkbut 및 answer01 만 활성화 한 다음 삭제됩니다. (지금까지는 매우 좋음) 그래서에 표시된대로 입력이 정확하면 nxtquest가 활성화됩니다. nxtquest.config (state = NORMAL) 그러나 다른 질문에 도달하면 nxtquest 버튼이 이미 활성화되어 있습니다. 이것이 문제입니다 !
경고 메시지 상자가 표시된 후에 만 버튼이 활성화되도록하려면 어떻게해야합니까?
신참 실수가 있으면이 도움이나 제안을 요청할 수 있습니까?
위의 코드를 올바르게 포맷하면 launch = 1이고 버튼 사용 중지가 설정되어 있는지 쉽게 알 수 있습니다. – voiDnyx