以下の doDebuggingMenu 関数では、raw_input 関数 (Python 2.6 を使用) を使用してユーザー入力を取得しています。この関数は、ユーザーが文字シーケンスを入力して Enter キーを押すまで待機します。それでも、Enter キーを押さなくても、キーボードの ESC ボタンを押すだけでユーザーがアプリケーションを終了できるようにしたいと思います (この動作を実装する関数の最後の elif ブロックを参照してください)。メニューには 2 桁の数字を入力する必要があるオプションがあるため、他のメニュー オプションについては、ユーザーが入力ボタンを押すことができる必要があります。ここでの私の質問は、次の関数でこの結合された動作をどのように提供できますか? ありがとう
def doDebugingMenu():
while(1):
printDebugingMenu()
char = raw_input("\nPlease, enter your selection in the debugging menu...:")
if char == '1':
doSetTraceLevelManually()
elif char == '2':
doSetTraceDomain()
elif char == '3':
doPrintLevels()
elif char == '4':
doPrintConfig()
elif char == '5':
doPrintProfile()
elif char == '6':
doPrintMap()
elif char == '7':
doPrintCounters()
elif(char == '8'):
doRaiseAlarm()
elif(char == '9'):
doClearAlarm()
elif(char == '10'):
doUpdateAlarm()
elif(char == '11'):
doShutdown()
#HERE I need to catch if ESC pressed
elif char == 'ESC':
break
def printDebugingMenu():
print "\n######################################"
print "# MENU #"
print "######################################"
print "1. setTraceLevel( traceLevel )"
print "2. setTraceDomain()"
print "3. PRINT Trace Domain and levels"
print "4. PRINT config"
print "5. PRINT profile config"
print "6. PRINT mapping config"
print "7. PRINT counters"
print "8. Issue Alarm"
print "9. Remove Alarm"
print "10. Update Alarm"
print "11. Shutdown"
print "EXIT: press ESC"