[問題] 有關圖形界面的問題
我想要寫一支程式,包涵:
1.一個主要的迴圈,例如倒數計時
2.一個圖形介面,包涵:
1.一個狀態欄,可以即時的顯示迴圈的進度
2.一個start的按鈕,程式執行時先顯示視窗,當我按下start才開始跑迴圈
3.一個stop的按鈕,可以隨時停止迴圈,並顯示最後的狀態
我用Tkinter來寫,碰到幾個問題
1.一開始我把迴圈和視窗寫在一起,就遇到一個問題:
當我開始跑迴圈時,即使我在迴圈中改變widget裡面的變數,視窗也不會馬上更新
要等到整個迴圈跑完,才會更新成最後的值
而且在跑迴圈的過程中視窗的按鈕都變成沒反應
我的解決方法是把迴圈和視窗分二個thread去跑,請問這樣的方式是正確的嗎
2.這樣一來就產生第二個問題,我沒辦法透過我的視窗去中止正在跑迴圈的thread
我上網查到的解決方法是在每一圈開頭去檢查一個變數的值(0/1或T/F)
然後我想停止迴圈時,只要改變這個變數,程式就會在下一圈跳出
那如果我的迴圈又分成好幾個step
例如
while 1:
step 1
step 2
step 3
而我希望我在其中任何一個step都可以把它停下來,不用等到整圈跑完
我是不是就要寫成
while 1:
if halt==1:
break
else:
step 1
if halt==1:
break
else:
step 2
......
這樣感覺好長喔…有沒有更好的方法呢?
感謝大家看完我的問題
如果我有那些不好的做法也請告訴我
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.213.158
※ 編輯: mantour 來自: 140.112.213.158 (11/13 00:10)
推
11/15 02:49, , 1F
11/15 02:49, 1F
推
11/15 09:28, , 2F
11/15 09:28, 2F
推
11/16 00:17, , 3F
11/16 00:17, 3F
Python 近期熱門文章
PTT數位生活區 即時熱門文章