1

Python 3 で tkinter を使用してプログラムを作成していますが、スタックしています...ボタンを押すとトリガーされる無限ループがあります。

def task13():
    while True:
        #do stuff

...

button13 = Button(root, width=25, text="13", command=task13)
goButton.pack(side=LEFT,anchor="n")

button13 のリリース時に task13 を終了するにはどうすればよいですか? 「キーボード割り込み」コードはありますか、それともループを変更できますか?

4

2 に答える 2

3

実行機能を中断する方法はありません。ただし、<ButtonRelease-1>ボタンをバインディングすることができ、そのバインディングではフラグを設定できます。次に、task13ループの上部にあるそのフラグを確認できます。また、ボタンウィジェット上のマウスボタンのリリースに関連付けられている<ButtonPress-1>ため、ループを開始するにはバインディングが必要です。command

これは、ループ中にイベントを処理する場合にのみ機能します。イベント ループをブロックする場合#do stuff、別のスレッドまたはプロセスでそのコードを実行する以外に、できることはありません。

于 2013-04-17T17:44:58.180 に答える