[RESOLU] Python Curses et menu horizontal

Bonjour a tous.
Depuis plusieurs jours maintenant, je suis sur un projet via un tuto qui m’inspire. le probleme c’est que je ne comprend rien du tout. A la fin du tuto, la personne lance un challenge pour faire un « menu horizontal » ( https://github.com/nikhilkumarsingh/python-curses-tut/blob/master/02.%20Creating%20Menu%20Display.ipynb ).
Bon ba voila, j’ai chercher sur internet, je n’ai rien trouver du tout, meme sur la documentation python, je ne trouve rien et je ne comprend pas comment faire.
Pour le moment, voici le code que j’ai fait pour tester juste le menu « exit » :

import curses

menu_exit = ['Non', 'Oui']
text = "Etes-Vous Sur ?"

def print_menu_exit(stdscr, selected_row_idx):
        stdscr.clear()
        h, w = stdscr.getmaxyx()
        for idx, row in enumerate(menu_exit):
                x = w//2 - len(row)//2
                y = h//2 - len(row)//2 + idx
                if idx == selected_row_idx:
                        stdscr.attron(curses.color_pair(1))
                        stdscr.addstr(y, x, row)
                        stdscr.attroff(curses.color_pair(1))
                else:
                        stdscr.addstr(y, x, row)
                        stdscr.refresh()

def print_center(stdscr, text):
#       stdscr.clear()
        h, w = stdscr.getmaxyx()
        x = w//2 - len(text)//2
        y = h//2 - len(text)//4
        stdscr.addstr(y, x, text)
        stdscr.refresh()

def main(stdscr):
        curses.curs_set(0)
        curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_GREEN)
        current_row = 0
        print_menu_exit(stdscr, current_row)
        while 1:
                print_center (stdscr,'{}'.format(text))
                key = stdscr.getch()
                if key == curses.KEY_LEFT and current_row > 0:
                        current_row -= 1
                elif key == curses.KEY_RIGHT and current_row < len(menu_exit)-1:
                        current_row +=1
                elif key == curses.KEY_ENTER or key in [10, 13]:
                        if current_row == len(menu_exit)-1:
                                break

                print_menu_exit(stdscr, current_row)

curses.wrapper(main)

Un grand merci a la personne qui sera me donner un element de reponce.
Je suis un noob qui bidouille, je n’ai aucune connaissance en programmation, je tourne sur un raspberry pi zero w avec python 2.7.18
Mille merci d’avance.

J’ai enfin trouver. Aprés m’étre arracher tout les cheveux.

...

def print_menu_exit(stdscr, selected_row_idx):
    stdscr.clear()
    h, w = stdscr.getmaxyx()
    for idx, row in enumerate(menu_exit):
            x = w//2 - len(row) + idx * 4
            y = h//2 - len(row)//2
            if idx == selected_row_idx:
                    stdscr.attron(curses.color_pair(1))
                    stdscr.addstr(y, x, row)
                    stdscr.attroff(curses.color_pair(1))
            else:
                    stdscr.addstr(y, x, row)
    stdscr.refresh()
x = w//2 - len(row) + idx * 4
y = h//2 - len(row)//2

Mille merci a moi du coup et au nombreuse pause et tasse de café. :wink:

Salut,

J’étais absent et j’ai juste lu ton message avant de partir … et … Ha ben, je ne vais pas chercher ce soir :slight_smile:
Ouf ; n’ayant plus de cheveux depuis bien des années, j’aurais dû arracher d’autres choses.

Bref,
Merci pour ton retour et la solution :wink:

++