2017-07-07 58 views
0

我正在做一個腳本,只要GO是更新我的「結果」 EmptyLabel與消息的最先進的日期值變量是FALSE擁有了無限的麻煩while循環和標籤更新(Python的AppJar)

我的問題是appJar窗口卡住(「不響應」),因爲它包含while循環。我已經嘗試了很多方法來解決這個問題,但它仍然陷入了同樣的問題。必須有一種方法讓while循環在後臺繼續,並且仍然更新GUI(在while循環內)。

下面你可以找到我的代碼:

from appjar import gui 

def press(button): 
    if button == "PLAY": 
     app.disableButton("PLAY") 
     Main(A, B, C) 
    else: 
     app.errorBox("Error", "Error") 

def Main(A, B, C): 
    GO = False 

    while not GO: 
     message = 'From: {0}\nTo: {1}.'.format(A, B) 

     if int(num) <= C: 
      GO = True 
      sys.exit(0) 
     else: 
      app.setLabel("Result", message) 

if __name__ == "__main__": 
    app = gui() 

    app = gui("Login Window", "420x300") 

    app.addEmptyLabel("Result", 3, 0, 4) 
    app.setLabelRelief("Result", app.GROOVE) 
    app.setLabelAlign("Result", app.NW) 
    app.setLabelHeight("Result", 8) 

    app.addButtons(["PLAY", "Reset", "Cancel"], press, 4, 0, 4) 

    app.go() 

Python版本:2.7.3 appJar GUI版本:0.61 enter image description here 你能幫助嗎?

+0

它有多遠?是否有可能看到控制檯,看看是什麼導致休息? –

+0

只要我按PLAY按鈕屏幕和按鈕卡住了。 – James

+0

哪裏/如何設置num? – jcfollower

回答

0

有一個while循環將導致GUI的事件循環掛起。在while循環結束之前,GUI不會再次響應。

您提供的代碼不起作用,所以我不能測試它。

但看看這裏:http://appjar.info/pythonEvents/#repeating-events關於使用appJar重複使用的一些建議。