アクション ボタンをクリックした後に長いプロセスを実行するプログラムがあります。プロセスが実行されているため、プログラムがバックグラウンドで実行されていることを知っていても、ルート ウィンドウは応答していないと表示します。このプログラムは、私が一緒に働いている何人かの人々にリリースされる予定です。彼らがこれを見たときにびっくりしてウィンドウを閉じないようにしたいと思います。私が持っている解決策は、実行中のプロセスのループに root.update を配置することですが、これが最善の修正であったかどうかはわかりません。
Python 3.3 の使用
コードのサンプルを次に示します。これにより、私が何をしているかがわかります。これは、メイン ループから呼び出されます。
def combine(boxes_to, boxes_from, frame):
to_value,to_pos = gui.checkBoxes(boxes_to)
from_value,from_pos = gui.checkBoxes(boxes_from)
frame.destroy()
running = Label(root,text="Running please do not close..",font = (16))
running.pack()
root.update()
map_to = open("map_to",'r')
for line in map_to:
root.update()
process(line)
running.destroy()
map_to.close()
finish = Button(root, text="Done",command=gui.stop)
finish.pack()