1
사용자에게 지시 할 수있는 메시지 상자가있는 프로그램이 있습니다. 그러나 메시지 상자를 닫은 후에 엔트리 위젯에 입력 할 수 없습니다. 누구에게 문제가 될 수있는 아이디어가 있습니까?tkinter messagebox는 Entry 위젯이 작동하지 못하도록합니다.
내 코드 :
from tkinter import *
import random
import tkinter.messagebox
class Application(Frame):
""" GUI aplication hoger of lager"""
def __init__(self,master):
"""Instaleerd het Frame"""
super(Application, self).__init__(master)
self.grid()
rarara=0;aantal=0;max_pogingen=10;ikdenkaan=random.randrange(1,100)
self.main()
def welkom(self):
"""Create Widgets voor het spelletje hoger of lager"""
#Verwelkomingslebels en instructielabels
msgb=tkinter.messagebox.showinfo("uitleg",
"Welkom bij het spelletje'hoger of lager'.\nIk heb zojuist aan een getal tussen 1 en 100 gedacht.\nJij mag dat getal raden en je hebt 10 pogingen."
)
def labels(self):
#ik denk aan label
Label(self,
text="Ik denk aan:"
).grid(row=0,column=0,sticky=W)
def welkgetal(self):
rarara=Entry(self)
rarara.grid(row=0, column=1,sticky=W)
rarara.configure(state="normal")
def main(self):
self.welkom()
self.labels()
self.welkgetal()
root=Tk()
root.title("Hoger of lager")
root.geometry("350x280+533+244")
app=Application(root)
root.mainloop()
"왜 그런지 모르겠다"는별로 유용하지 않습니다. 또한 "이벤트 처리를위한 이상한 방법"은 모달 창과는 아무런 관련이 없습니다. 즉, '후'를 통해 '셀프. 웰콤'이라고하는 당신의 충고는 좋은 것입니다. 그 이유는 모달 윈도우를 열기 전에 이벤트 루프를 실행해야하기 때문입니다. 'after (1 ...) '대신'after_idle (...)'을 사용할 수 있는데, 개념적으로 "tkinter 초기화가 끝나고 이벤트 루프가 시작되었을 때"를 의미합니다. –
감사합니다. 그것은 작동합니다. – tuin2121