高度すぎる(!)質問です。泣きながら分かる範囲で回答します。
windows上のGUI部品(今回ですとTkinter)は基本的に「ウィンドウを選択して移動」中=ドラッグ中には処理を停止します。ドラッグ中も処理を動かしたいなら何かしらの対策が必要です。
Tkinterは一定時間ごとに処理をする仕組み(after関数)を持っていますので、文字を書き換える部分を一定時間毎に呼び出せばドラッグ中も動作します。お試しに改造したコードはこのような感じです。
python
1#python3コード
2from tkinter import * # python3なのでmodule名が小文字化
3
4#step数を書き換える部分
5def show_step():
6 global var
7 var += 1
8 if(var > 100):
9 root.destroy() # step100で終了
10 else:
11 c0.delete("step")
12 step = 'step=' + str(var)
13 c0.create_text(150, 25, text=step, font=('FixedSys', 18), tags='step')
14 c0.pack()
15 c0.update()
16
17 root.after(100, show_step) #0.1秒ごとにshow_stepが呼び出される=画面が書き換えられる
18
19if __name__ == "__main__":
20 root = Tk()
21 c0 = Canvas(root, width = 300, height = 50)
22 var = 0
23 show_step() # forループの部分はshow_step関数にします
24 root.mainloop() # windowを保持する
afterの使い方は下記が参考になりました。
###(ご参考)重い技術資料
UIスレッドとワーカースレッドの分離問題です
ウインドウのサイズを変更している途中もプログラムが一時停止しないようにするためには
時間経過処理や描画処理をメインスレッドとは別のスレッドで行う必要があります
( ウインドウのサイズを変更している間、ProcessMessage 関数から処理が戻ってこないため )
###その他
ubuntu(というかX Window System?)のGUI部品の仕組みについては存じ上げません。
しかし、特に対策せずにドラッグ中も処理が動くということは素晴らしいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。