2017-03-11 24 views
0

これは愚かな質問かもしれませんが、私は自分自身で解決することができませんでした。私はGLUTを使ってウィンドウを作成するPyOpenGlアプリケーションを持っています。 端末のユーザー入力が「終了」していない間、プログラムは実行され続けます。このような何かを:input_raw()がアクティブなときにGLUTウィンドウを閉じるには? Python

command = raw_input() 
while command != "quit": 
    if command == "add_shape": 
     draw_cube() 
    elif command == "remove_shape": 
     clear_window() 
    elif command == "add_light": 
     add_light() 
    command = raw_input() 
sys.exit("Application closed by the user") 

の問題は、私ができるraw_input()動作しない「×」ボタンを使用して、ウィンドウを閉じるとき、唯一quitと入力すると、タスクを終了するだろうということです。最初は私はGLUTが "x"ボタンのクリックを検出してアプリケーションを強制終了するために使うことができるウィンドウを閉じるためのコールバック関数を持っていると思ったが、そのような関数void glutCloseFunc(void(*)(void)callback)を持っていることが判明したが、raw_input()がアクティブ。だからこれには良い解決策はありますか?ターミナルからユーザー入力を読み込み、「x」ボタンをクリックしてアプリケーションを閉じることはできますか?

REQUIRED:

  • 端末から読むのユーザー入力。

オプション:GLUTを使用して

  • はオプションです。私はPyGameを試しましたが、端末とのやりとりだけを扱うため、端末から読み込む解を見つけることができませんでした。

ありがとうございます!

答えて

0

私はそれを行う最も論理的で簡単な方法は、スレッドの使用と考えています。そうすれば、raw_inputs()を聞くためのスレッドと、window closeイベントを聴くための別のスレッドがあります。

関連する問題