IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Recherche un exemple de code le plus simple possible avec python3 curses [Python 3.X]


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Par défaut Recherche un exemple de code le plus simple possible avec python3 curses
    Bonjour,

    Je cherche un exemple de code le plus simple possible avec python3 curses pour :
    - afficher le contenu d'une variable de type chaîne de caractères ;
    - permettre à l'utilisateur de déplacer le curseur à l'intérieur de la chaîne ;
    - modifier la chaîne ;
    - taper entrée et enregistrer la chaîne modifiée dans une variable.


    Merci d'avance

    --
    Benoît

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 630
    Par défaut
    Salut,

    Ce genre de recherche se fait en entrant les mots clefs "python curses examples" dans son moteur de recherche préféré.
    Possible que vous l'ayez fait sans avoir trouvé votre bonheur, mais pourquoi serions nous plus chanceux?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Ce genre de recherche se fait en entrant les mots clefs "python curses examples" dans son moteur de recherche préféré.
    Possible que vous l'ayez fait sans avoir trouvé votre bonheur, mais pourquoi serions nous plus chanceux?

    - W
    Je l’ai fait en effet, j’ai trouvé énormément d’exemples, mais pas celui que je recherche, donc rien qui m’aide.

    Ce n’est pas une question de chance mais de compétence.

    Faute de trouver un exemple suite à ma recherche, il se pourrait quelqu’un de plus compétant que moi, aie déjà eu a résoudre ce problème et me donne des indications ne venant pas d’un moteur de recherche, mais de sa propre expérience.

    Le partage de la connaissance est, il me semble, en grande partie, la raison d’être de ce genre de forum.

    --
    Benoît

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 630
    Par défaut
    Citation Envoyé par benoit68 Voir le message
    Faute de trouver un exemple suite à ma recherche, il se pourrait quelqu’un de plus compétant que moi, aie déjà eu a résoudre ce problème et me donne des indications ne venant pas d’un moteur de recherche, mais de sa propre expérience.
    Tel que posé le problème est de trouver/écrire le code correspondant. Pour chercher, c'est d'abord une affaire de patience, pour ce qui est de coder, effectivement les compétences aident.

    Citation Envoyé par benoit68 Voir le message
    Le partage de la connaissance est, il me semble, en grande partie, la raison d’être de ce genre de forum.
    La connaissance est une faculté mentale produisant une assimilation par l'esprit d'un contenu objectif préalablement traduit en signes et en idées (Wikipedia). Récupérer du code c'est comme acheter un bouquin, il y a des informations dedans (signes et idées) mais ça ne deviendra connaissance qu'après y avoir passé du temps pour comprendre.

    Du coup, la connaissance ne se partage pas.... Désolé c'est comme ça.

    Jetez vous à l'eau et essayez d'écrire ce code là... en cas de soucis, vous aurez de quoi poster et demander de l'aide pour continuer.

    La raison d'être de ce genre de forum n'est pas de coder à votre place mais de vous permettre de devenir un meilleur programmeur (ce qui suppose que vous savez déjà un peu coder).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 489
    Par défaut
    un point de départ https://docs.python.org/3/howto/curses.html# et https://docs.python.org/3/library/cu...#module-curses
    après, je pense que le point 2 et 3 (déplacement du curseur et modification par l'utilisateur), c'est "géré" par l'OS

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 782
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par benoit68 Voir le message
    Je cherche un exemple de code le plus simple possible avec python3 curses pour :
    - afficher le contenu d'une variable de type chaîne de caractères ;
    - permettre à l'utilisateur de déplacer le curseur à l'intérieur de la chaîne ;
    - modifier la chaîne ;
    - taper entrée et enregistrer la chaîne modifiée dans une variable.
    Je ne vois pas trop le lien entre le besoin et curses. Pour moi, curses sert à écrire des infos en tout point de l'écran (contrairement au print classique qui écrit les infos les unes sous les autres). Là, typiquement, ce serait une IHM type Tk ou Qt (ou autre) offrant à l'utilisateur une zone de saisie dans laquelle il affiche une variable puis attend qu'il valide la saisie.

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #!/usr/bin/env python
    # coding: utf-8
     
    from tkinter import *
     
    class MyWindow(Tk):
    	def __init__(self, value, *args, **kwargs):
    		# On appelle le constructeur parent
    		super().__init__(*args, **kwargs)
     
    		self.__name = StringVar()
     
    		label = Label(self, text="Voici votre texte")
    		label.pack()
     
    		name = Entry(self, textvariable=self.__name)
    		name.delete(0, END)
    		name.insert(0, value)
    		name.focus_set()
    		name.pack()
     
    		button = Button(self, text="Action!", command=self.__action)
    		button.pack()
     
    		self.geometry("300x200")
    		self.title("Entry widget usage")
    	# __init__()
     
    	def __action(self):
    		print("Votre variable contient " + self.__name.get())
    # class MyWindow
     
    # On lance la boucle d'évènements
    MyWindow("bonjour").mainloop()

    Citation Envoyé par wiztricks Voir le message
    Du coup, la connaissance ne se partage pas.... Désolé c'est comme ça.
    Oui enfin il faut essayer de lire entre les lignes, de voir un peu plus large. Peut-être a-t-il écrit "connaissance" en pensant à une notion plus de l'ordre du "savoir". Et dans ce cas, oui ça se partage. Ou plutôt (si on lit trop petit et qu'on assimile "partage" à "division") ça se transmet. C'est le but des livres, des cours et des professeurs et moi aussi je pense que c'est un des buts de ce forum.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 162
    Par défaut
    hello,
    Le module curses.textpad fournit un type de boîte texte qui gère des touches de fonctions à la façon d'Emacs. Plusieurs méthodes de la classe Textbox gèrent l'édition avec la validation des entrées et le regroupement de l'entrée avec ou sans les espaces de début et de fin.
    Exemple d'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import curses
    from curses.textpad import Textbox, rectangle
     
    def main(stdscr):
        stdscr.addstr(0, 0, "Modifier la valeur de la variable : (Taper Ctrl-G pour sortir)")
        editwin = curses.newwin(2,20, 2,1)
        rectangle(stdscr, 1,0, 1+2+1, 1+20+1)
        stdscr.refresh()
     
        box = Textbox(editwin)
        maVariable = "maValeur"
        # Simulation d'entrée de caractère dans la box
        for c in maVariable:
            box.do_command(ord(c))
        # Edition jusqu'à ce que Ctrl-G soit rentré
        box.edit()
     
        # Récupérer le résultat et l'afficher
        maVariable = box.gather()
        print(maVariable)
     
    curses.wrapper(main)
    Nom : testCursesTextPad.gif
Affichages : 158
Taille : 34,5 Ko

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 630
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    C'est le but des livres, des cours et des professeurs et moi aussi je pense que c'est un des buts de ce forum.
    A partir du moment ou la règle est de chercher sur Internet et de savoir un peu programmer avant de demander de l'aide, le but de ce forum n'est pas certainement pas de servir la soupe à la demande. Et si on veut aider quelqu'un à progresser, il faut bien qu'il montre un peu les difficultés qu'il rencontre.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre Expert Avatar de Ti-Slackeux
    Homme Profil pro
    Robotique
    Inscrit en
    Août 2007
    Messages
    809
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Robotique

    Informations forums :
    Inscription : Août 2007
    Messages : 809
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    La connaissance est une faculté mentale produisant une assimilation par l'esprit d'un contenu objectif préalablement traduit en signes et en idées (Wikipedia). Récupérer du code c'est comme acheter un bouquin, il y a des informations dedans (signes et idées) mais ça ne deviendra connaissance qu'après y avoir passé du temps pour comprendre.
    Dans ma carrière, lors de formations, j'ai croisé des gens qui avaient un peu de misère à assimiler certains sujet.
    Quand j'avais trouvé le bon angle, il n'y avait plus d'obstacle et ils assimilaient finalement aussi bien que les autres une fois ce cap passé.

    L'idée du "prend un bouquin, lis et tu sauras" c'est pas la pire des mauvaises idées mais on en est pas loin.
    Dans le genre RTFM, sous certaines conditions, on en est pas loin non plus.


    Citation Envoyé par wiztricks Voir le message
    Du coup, la connaissance ne se partage pas.... Désolé c'est comme ça.
    Ne dit-on pas que la connaissance n'est jamais que le cumul de ces propres conneries ?


    @Sve@r "C'est le but des livres, des cours et des professeurs et moi aussi je pense que c'est un des buts de ce forum." => C'est aussi ce que je pense


    Mes deux cents,

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 630
    Par défaut
    Citation Envoyé par Ti-Slackeux Voir le message
    Dans ma carrière, lors de formations, j'ai croisé des gens qui avaient un peu de misère à assimiler certains sujet.
    Quand j'avais trouvé le bon angle, il n'y avait plus d'obstacle et ils assimilaient finalement aussi bien que les autres une fois ce cap passé.
    Tout à fait d'accord. Mais ici, on ne sait pas ce qui n'est pas compris puisque le PO se contente de demander un exemple de code qu'il pourrait trouver sur Internet (ou commenter un des exemples trouvés pour demander des explications).

    Difficile dans ces conditions de trouver un "bon angle" pour expliquer quoi que ce soit.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre confirmé Avatar de Nsky__
    Homme Profil pro
    Ingénieur DevSecOps
    Inscrit en
    Mars 2025
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur DevSecOps
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2025
    Messages : 18
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Du coup, la connaissance ne se partage pas.... Désolé c'est comme ça.
    Si j'avais une boite de présta devant moi qui me répondait ça, je pense que j'aurai fait sauter le contrat dans la semaine qui arrive, avec la même finalité "Désolé, c'est comme ça."


    Benoit68, aurais-tu un contexte en particulier dans lequel tu souhaiterais appliquer cet usage de python curses dans ton quotidien ?
    Merci à toi.

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 630
    Par défaut
    Citation Envoyé par Nsky__ Voir le message
    Si j'avais une boite de présta devant moi qui me répondait ça, je pense que j'aurai fait sauter le contrat dans la semaine qui arrive, avec la même finalité "Désolé, c'est comme ça."
    Le PO ne respecte pas sa part du contrat (chercher, se former,...) à partir de là...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 782
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Exemple d'utilisation :
    Sous Linux ça ne fonctionne pas. Ou alors je ne sais pas l'utiliser.
    Si j'ai bien compris, taper "ctrl+g" affiche la valeur dans le terminal depuis lequel on a lancé le code. Sauf que chez-moi, ça n'affiche rien.
    J'ai même tenté des print("coucou") sans plus de résultat.

    Ce qui n'enlève rien à l'exploit. Je ne connaissais pas "textpad" (d'ailleurs je ne connais pas tellement non plus "curses")

    PS: me doutant que ça vient du print() qui doit entrer en conflit avec curses, j'ai changé la fin et renvoyé la variable au lieu de l'afficher
    Ainsi les dernières lignes deviennent...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	# Récupérer le résultat et l'afficher
    	return box.gather()
     
    print(curses.wrapper(main))
    ... et là ça fonctionne.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  14. #14
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 782
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Exemple d'utilisation :
    Sous Linux ça ne fonctionne pas. Ou alors je ne sais pas l'utiliser.
    Si j'ai bien compris, taper "ctrl+g" affiche la valeur dans le terminal depuis lequel on a lancé le code. Sauf que chez-moi, ça n'affiche rien.
    J'ai même tenté des print("coucou") sans plus de résultat.

    Ce qui n'enlève rien à l'exploit. Je ne connaissais pas "textpad" (d'ailleurs je ne connais pas tellement non plus "curses")

    PS: me doutant que ça vient du print() qui doit entrer en conflit avec curses, j'ai changé la fin et renvoyé la variable au lieu de l'afficher
    Ainsi les dernières lignes deviennent...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	# Récupérer le résultat et l'afficher
    	return box.gather()
     
    print(curses.wrapper(main))
    ... et là ça fonctionne.

    Citation Envoyé par wiztricks Voir le message
    Citation Envoyé par benoit68 Voir le message
    Je cherche un exemple de code le plus simple possible avec python3 curses pour :
    Le PO ne respecte pas sa part du contrat (chercher, se former,...) à partir de là...
    Bah si justement, il cherche. C'est ça sa recherche (venir voir si par hasard on avait un exemple ressemblant à ...). Moi je ne trouve pas cela choquant.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Bonjour

    Je ne vois pas trop le lien entre le besoin et curses. Pour moi, curses sert à écrire des infos en tout point de l'écran (contrairement au print classique qui écrit les infos les unes sous les autres). Là, typiquement, ce serait une IHM type Tk ou Qt (ou autre) offrant à l'utilisateur une zone de saisie dans laquelle il affiche une variable puis attend qu'il valide la saisie.
    Bonjour,


    Merci pour ta réponse,

    Le lien avec curses, c'est de ne pas devoir passer du terminal( ou bien Xterm et autres sous *n*x, Terminal sur Mac, powerShell, invite de commande sous Windows) à une interface graphique type Tk ou Qt.

    Je ne suis pas sûr de ce que j'avance, mais il me semble que curses, sert à rester dans un terminal, quand on ne veut pas utiliser une IHM type Tk, Qt, GTK ou autre.

    C'est vrai qu'avec un GUI type Qt, ça aurait été plus simple(je sais plus ou moins comment faire), contrairement à curses que je ne connais pas du tout.

    Un print classique, affiche une chaîne non modifiable, suite à mes recherches, les échanges sur les forums font souvent référence à curses pour modifier une chaîne affichée dans un terminal.

    Raison pour laquelle, ma demande portait sur curses

    --
    Benoît

    Ps.
    A ceux qui se sont donné la peine de répondre, je vous prie de bien vouloir excuser ma réponse tardive et je regrette un peu les débats que ma question soulève.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    hello,
    Le module curses.textpad fournit un type de boîte texte qui gère des touches de fonctions à la façon d'Emacs. Plusieurs méthodes de la classe Textbox gèrent l'édition avec la validation des entrées et le regroupement de l'entrée avec ou sans les espaces de début et de fin.
    Un tout grand merci ! ;-)


    --
    Benoît

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Par défaut
    Citation Envoyé par Nsky__ Voir le message

    Benoit68, aurais-tu un contexte en particulier dans lequel tu souhaiterais appliquer cet usage de python curses dans ton quotidien ?
    Merci à toi.
    C'est moi qui te remercie ! ;-)

    C'est une question a attisé ma curiosité, j’ai écrit un petit script en python qui modifie des chaînes de caractère.
    Comment fait-t-on quand on veut une interaction aussi simple, qu’afficher, modifier et valider une chaîne dans un terminal sans devoir utiliser PySide2 ou pyQt?
    Mes recherches sur le net ramènent à curses souvent cité, mais sans fournir d'exemple de code spécifique à un cas d’utilisation aussi simple.

    --
    Benoît

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Sous Linux ça ne fonctionne pas. Ou alors je ne sais pas l'utiliser.
    Si j'ai bien compris, taper "ctrl+g" affiche la valeur dans le terminal depuis lequel on a lancé le code. Sauf que chez-moi, ça n'affiche rien.
    J'ai même tenté des print("coucou") sans plus de résultat.

    Ce qui n'enlève rien à l'exploit. Je ne connaissais pas "textpad" (d'ailleurs je ne connais pas tellement non plus "curses")

    PS: me doutant que ça vient du print() qui doit entrer en conflit avec curses, j'ai changé la fin et renvoyé la variable au lieu de l'afficher
    Ainsi les dernières lignes deviennent...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	# Récupérer le résultat et l'afficher
    	return box.gather()
     
    print(curses.wrapper(main))
    ... et là ça fonctionne.

    Oui ça fonctionne super !

    Par contre dans mon terminal, sous Linux, il semble que ça fonctionne en mode Overwrite (remplacement du caractère plutôt qu'allonger la chaîne).
    Mais grâce à l'exemple de @jurassic pork que je remercie, j'ai une piste pour chercher dans la doc de textpad et Textbox...

    Donc pour choisir le comportement à la ligne 10 de l'exemple
    box = Textbox(editwin, insert_mode=True)

    Permet de choisir le comportement
    Cf.
    https://stackoverflow.com/questions/...textbox-widget
    https://www.programcreek.com/python/...extpad.Textbox

    Et oui, tu as raison, grâce à l'exemple de code donné par @jurassic pork, je sais que je dois chercher dans Textbox.
    C'est quand même plus facile quand on reçoit un indication pour orienter sa recherche ! ;-)

    Merci d'être intervenu !

    Avec gratitude,

    --
    Benoît

  19. #19
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 630
    Par défaut
    Citation Envoyé par benoit68 Voir le message
    Mes recherches sur le net ramènent à curses souvent cité, mais sans fournir d'exemple de code spécifique à un cas d’utilisation aussi simple.
    Pour une application "simple" on préférera readline. curses, sera plutôt orienté affichage plein écran, l'écran étant un tableau de 24/25 lignes et 80/132 colonnes.

    curses et readline sont assez anciens: ils avaient le vent en poupe fin des années 80, années 90. Vous trouverez beaucoup d'exemples écrits en C et peu d'exemples Python car depuis, les écran graphiques se sont généralisés et quitte à passer du temps à apprendre quelque chose on préférera coder un truc avec tkinter (inclus dans python et dont on apprend les bases dans tous les bons tutos).
    note: Sve@r vous l'a déjà indiqué il me semble.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  20. #20
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 782
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par benoit68 Voir le message
    Comment fait-t-on quand on veut une interaction aussi simple, qu’afficher, modifier et valider une chaîne dans un terminal sans devoir utiliser PySide2 ou pyQt?
    Cela fait partie du grand domaine de la Vue (dans le MVC) => comment afficher/modifier une data
    On peut soit passer par du print+input en restant en mode texte ; ou alors entrer dans des considérations plus particulières en offrant à l'utilisateur une "visualisation" de la chose à saisir. Et là c'est différentes possibilités (PyQt/Pyside, Tk, Gtk, PySimpleGUI, wxWidget jusqu'à ce curses dont j'avais oublié l'existence.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Demande de requête multiple la plus simple possible
    Par Blancos dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/04/2013, 15h55
  2. animation 3d la plus simple possible
    Par kharg dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 29/01/2010, 16h24
  3. Réponses: 1
    Dernier message: 03/10/2008, 21h34
  4. Code plus simple?
    Par cchampion2fr dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/09/2008, 16h49
  5. [Framework] Recherche d'exemple simple
    Par anaon dans le forum Spring
    Réponses: 4
    Dernier message: 26/04/2006, 16h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo