0

時々エラーが発生するプログラムを書いています。その場合、続行するかどうかをユーザーに尋ねるTkinterダイアログがポップアップ表示されます。これのより複雑なバージョンです:

keep_going = False
KeepGoingPrompt(keep_going)
if not keep_going:
    return

プロンプトはに設定keep_goingされるTrueか、そのままになりFalseます。問題は、KeepGoingPrompt開いている間、コードが継続しているように見えることです。への参照を保存し、次のpromptようなループを追加してみました

while prompt:
    time.sleep(1)

しかし、Pythonはループでスタックし、フリーズします。それを行うためのより良い方法はありますか?

ありがとう

4

2 に答える 2

1

tkMessageBoxクラスを使用して、モーダルでユーザーがボタンをクリックするまで戻らない質問ダイアログをポップアップ表示できます。詳細については、Tkinterの本を参照してください。

于 2010-10-15T00:49:41.470 に答える
0

1)IDLE内でコードを実行していますか?対話が実際にブロックされているはずなのに、ダイアログを非ブロックにする責任があるかもしれません。

2)IDLEの外部で実行しても問題が解決しない場合は、動作がブロッキングか非ブロッキングかを指定するtkinter/dialogueオプションを探します

于 2010-10-15T00:50:20.387 に答える