Forum Programmation.perl menu interactif

Posté par  .
Étiquettes : aucune
0
5
sept.
2007
bonjour,

Je cherche comment faire un menu interactif sous perl.

menu simple en mode text qui avec les fleches curseurs permet de monter ou descendre une barre en sur brillance sur le choix du texte et une fois le texte choisie en appuyant la touche enter execute une commande.

Ex:

- choix 1
- choix 2
- choix 3
faite un choix

avec une barre blanche en inversion video change le texte qui est de couleur blanche en noir

En C je sais faire mais en perl non :-((

quelqu'un a t'il une idee?
Merci d'avance pour toutes reponses.
  • # perl::tk

    Posté par  . Évalué à 1.

    les modules TK de perl te permettent de faire une interface graphique assez simplement, et de gerer des menus, des sous-menus, des boutons
    etc
    etc
    • [^] # Re: perl::tk

      Posté par  . Évalué à 1.

      Oui j'ai vu avec Tk c'est assez simple, mais je souhaite le faire en mode text (console).

      Je suis sur que c'est possible en Perl, je l'ai deja fait en C quand j'etais etudiant.....
      • [^] # Re: perl::tk

        Posté par  . Évalué à 1.

        Perl et curses.
        Pas testé mais avec curses.pm et le programme 10.pl
        sur ce site, ça devrait être simple non ?

        http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_prog(...)
      • [^] # Re: perl::tk

        Posté par  . Évalué à 2.

        D'accord, mais tu l'as fait avec quoi ?

        Si tu as utilisé les fonctions d'une bibliothèque en C, il faut retrouver une bibliothèque équivalente en Perl.

        Si tu as utilisé les séquences CSI avec Escape, il suffit de rebalancer les mêmes à l'écran puisque c'est le terminal qui gère sa surbrillance, pas directement le programme en lui-même ...
  • # ANSIColor

    Posté par  (site web personnel) . Évalué à 1.

    Salut,

    Pour gerer les couleurs de facon simple : ANSIColor [1]
    Mais tu as aussi notre ami ncurses (curse) [2]


    Personnellement, j'ai toujours utilise ANSIColor pour faire des "petites IHM" en mode terminal et cela fonctionne tres bien.

    astuce 1 : tu vas devoir gerer les 'clear' a chaque fois, tu as donc interet a stocker le retour du clear en debut de programme
    ex :

    my $clear=`clear`;
    while(1){
    ...
    print $clear;
    ...
    }


    astuce 2 : il faut utiliser autoflush
    $|=1;

    astuce 3: pour prendre en compte une touche sans attendre le "\n" :
    use HotKey;
    $key = readkey();


    [1] http://search.cpan.org/~rra/ANSIColor-1.12/ANSIColor.pm
    [2] http://search.cpan.org/search?query=curses&mode=all
  • # dialog

    Posté par  . Évalué à 3.

    "man dialog" ça passe par du shell mais peut-être que ça suffit, sinon aussi http://search.cpan.org/search?m=all&q=dialog&s=1
  • # Et ça, ça ferait pas l'affaire ?

    Posté par  (site web personnel) . Évalué à 1.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.