コンソールが存在しない状態で Python で実行するプログラムがあります (つまり、py2exe を使用してコンパイルしました)。メイン メニューから、またはゲーム内で特定のキーを押して (Shift + Q など) 終了できるようにしたいと考えています。Linux/Mac バージョンのコンパイルに取り組んでいますが、今のところ Windows で実行しています。「while」ループが実行されていない場合は X ボタンを押すと機能するようで、正しく閉じます。そうでない場合は、現在のループが閉じられるまで閉じるコマンドを「保存」するようです。
メニュー オプションについては、ドキュメントと Stackoverflow を徹底的に調べ、quit()、exit()、sys.exit()、および見つけられるすべての組み合わせを試しましたが、毎回次のようになります。
Traceback (most recent call last):
File "alphatime.pyw", line 61177, in <module>
File "alphatime.pyw", line 53970, in place_menu
NameError: global name 'sys' is not defined
sys.exit を試すと、次のようになります。
Traceback (most recent call last):
File "alphatime.pyw", line 61177, in <module>
File "alphatime.pyw", line 53970, in place_menu
NameError: global name 'quit' is not defined
「quit()」だけを試してみると。プログラムを閉じる必要があるなどの「発生」について聞いたことがありますが、それが何を意味するのか(私はPythonが初めてです)、どのようにそれを行うのかはわかりません。
ですから、私の質問は 2 つあります。
まず、クリックされた「X」を認識して閉じるキープレスを認識するためにループに入れることができるものはありますか?
第二に、プログラムを閉じるだけの適切なコマンドはありますか? これらのコマンドが機能しない理由がわかりません。また、このプログラムを使用している人々から、プログラムがクラッシュしたり、ctrl-alt-del を使用しなければならないなどの苦情がかなりありました。私は信じている
import os
try:
os._exit(return_code)
except:
pass
動作しますが、この時点では、Python を適切に展開するのに十分な能力があるかどうかはわかりません。前もって感謝します!