2011-08-16 3 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

あなたの投稿にはまだ質問はありません。一番上の文といくつかのコードがあります。私はあなたが1つを追加しない場合、 "本当の質問ではない"として閉じるために投票するつもりです。 – agf

+0

質問は、関数がリストのすべての項目を処理し終わったときにのみ、リストの各項目のテキストウィジェットにテキストが挿入されることです。 – GiannisIordanou

答えて

1

テキストウィジェット(およびすべてのウィジェット)イベントループに入ったときにのみ更新されます。コードがループしている間は、ペイントイベントは処理されません。最も簡単な解決策は、update_idletasksを呼び出して画面を更新することです。画面を更新することは「アイドル」なタスクとみなされます。少し詳しく

、質問は何ですか質問How do widgets update in Tkinter?

+0

ありがとう、私はテキストウィジェットのupdate_idletasksを使用し、それは働いた。 – GiannisIordanou

関連する問題