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


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 18
    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 626
    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 626
    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
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 18
    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 626
    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 626
    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 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,

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 626
    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 626
    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

  8. #8
    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.

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 626
    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 626
    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

  10. #10
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 781
    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 781
    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]

  11. #11
    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 : 121
Taille : 34,5 Ko

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

  12. #12
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 781
    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 781
    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]

  13. #13
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 781
    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 781
    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]

  14. #14
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 626
    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 626
    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

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