2
私はncursesにメニューシステムを持っています。 オプションのいずれかを選択すると、別のメニューに移動します。しかし、私はどのように戻ってくるのですか?Python Curses:前のメニューに戻る
import curses
def Main():
x = 0
while x!= ord('2'):
x = screen.getch()
screen.clear();screen.border();
screen.addstr(1,1, "Please choose:")
screen.addstr(3,1, "1 - Another Menu")
screen.addstr(4,1, "2 - Exit")
if x==ord('1'):
y = 0
while y!= ord('2'):
y = screen.getch()
screen.clear();screen.border();
screen.addstr(1,1, "Please choose from new menu:")
screen.addstr(3,1, "1 - Do Something new")
screen.addstr(4,1, "2 - Previous Menu")
if y == ord('1'): doSomething()
#Here I exit the internal loop. I need to go back to the previous menu, but I don't know how.
##
##exit outside loop and close program
##
curses.endwin(); exit();
screen = curses.initscr()
Main()
理想的には私はコードの行の間でジャンプするGOTOモジュールを使用する必要があると思いますが、私が使用しているデバイスが内蔵され、そのモジュールが付属していません。
他の方法は知っていますか?本当に助けていただければ幸いです。
============更新:==================
さて、私はまた、あなたが両方を再生することができることに気づきました簡単にメニューの:ループが終了している間
import curses
def Main():
x = 0
while x!= ord('2'): #draws 1st menu
screen.clear();screen.border();
screen.addstr(1,1, "Please choose:")
screen.addstr(3,1, "1 - Another Menu")
screen.addstr(4,1, "2 - Exit")
x = screen.getch() #grab input AFTER first giving options :)
if x==ord('1'):
y = 0
z = 0
while y!= ord('2'): #draws 2nd menu
screen.clear();screen.border();
screen.addstr(1,1, "Please choose from new menu:")
screen.addstr(3,1, "1 - Do Something new")
screen.addstr(4,1, "2 - Previous Menu")
screen.addstr(6,1, "current loop : "+str(z))
y = screen.getch(); #grabs new input
while z!= -1: #never breaks from loop unless 'break' is called
if y == ord('1'):
z += 1
break #regenerates 2nd menu
break #regenerates 1st menu
#Here we exit the internal loop.
##
##exit outside loop and close program
curses.endwin(); exit();
screen = curses.initscr()
Main()
が、私は誰かが "2-Previous Menu"を選択したとき(内部!= ord( '2')のために)内部ループから壊れてしまうので、ここでは本当に 'ブレーク'を使う必要はありません。私はちょうど最初のメニューを再生成する必要があります。 – tetris11
@テトリス:おっと、申し訳ありません、あなたは正しいです。新しい答えを見てください。 – katrielalex
あああ!ありがとう! – tetris11