2011-08-16 1 views
0

질문이 있습니다. 텍스트 위젯의 목록에있는 항목을 삽입 한 다음 해당 항목으로 작업하는 기능이 있으면 먼저 모든 항목을 처리 한 다음 텍스트 위젯에 삽입합니다.Tkinter 함수가 함수를 마친 후에 텍스트 위젯에 텍스트를 삽입하는 이유는 무엇입니까?

는 여기에 내가 무슨 말을 설명하는 간단한 코드입니다 :

from Tkinter import* 
import Tkinter as tk 

list = range(1,1000) 

def highlow(): 
    for numbers in list: 
     text1.insert(END,'Number : '+str(numbers)+'\n') 
    if numbers>500: 
     print 'High' 
    else: 
     print 'Low' 

app=Tk() 
app.title("Window Title") 
app.geometry('400x400+200+200') 
app.resizable(0,0) 

button=Button(app,text="Run",font=("Times", 12, "bold"), width=20 ,borderwidth=5, foreground = 'white',background = 'blue',command=highlow) 
button.pack() 

text1 = Text(app,height = 60,font=("Times", 12)) 
text1.insert(END,"") 
text1.pack(padx=15,pady=1) 


app.mainloop() 
+1

질문은 무엇인가에 대한 답변을 볼 수? 명확한 질문을 추가하려면 게시물을 수정하십시오. 또한 질문의 제목을 좀 더 구체적으로 작성하십시오. – agf

+0

귀하의 게시물에는 여전히 질문이 없으며 맨위의 문장과 일부 코드가 있습니다. 나는 당신이 하나를 추가하지 않으면 "진짜 질문이 아닙니다"로 끝내기 위해 투표 할 것입니다. – agf

+0

질문은 함수가 목록의 모든 항목을 처리하지 못했을 때만 텍스트가 목록의 모든 항목에 텍스트 위젯에 삽입된다는 것입니다. – GiannisIordanou

답변

1

이벤트 루프를 입력 한 경우에만 새로 고쳐집니다 텍스트 위젯 (그리고 모든 위젯). 코드가 반복되는 동안 페인트 이벤트가 처리되지 않습니다. 가장 간단한 해결책은 update_idletasks을 호출하여 화면을 업데이트하는 것입니다. 화면을 새로 고치는 것은 "유휴"작업으로 간주됩니다. 좀 더 자세한 내용은

질문 How do widgets update in Tkinter?

+0

감사합니다. 텍스트 위젯에 update_idletasks를 사용했는데 제대로 작동했습니다. – GiannisIordanou

관련 문제