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

Tkinter Python Discussion :

-résolu-py3+tkinter - soucis de bouclage


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 27
    Par défaut -résolu-py3+tkinter - soucis de bouclage
    bonjour a tous et toutes.
    pourriez-vous m'aiguiller?
    je me suis créer un générateur de mot de passe, en ligne de commande il fait bien ce que je veux c'est à dire il génère le mot de passe quand j'appuie sur une touche et qui le programme quand je le décide.
    je me serait bien contenté de cela par contre je trouve rébarbatif la méthode copier sur l'invite de commande windows. j'ai donc du modifier mon code pour passer par une interface graphique.
    le code:
    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
    23
    24
    25
    26
    27
    28
     
    from tkinter import *
    from random import randrange
     
    def one():
    	"""
            """
    	a = '2 3 4 5 6 7 8 9 a z e r t y u p q s d f g h j k m w x c v b n'
    	a = a.split(' ')
     
    	res = []
    	while len(res) < 8:
    		i = randrange(len(a))
    		res.append(a[i])
     
    	res = ''.join(res)
    	return res
     
    t = one()
     
    fen1 = Tk()
    Button(fen1,text="generer code",command=one()).pack()
    ent1 = Entry(fen1)
    ent1.delete(0,END)
    ent1.insert(0,t)
    ent1.pack()
     
    fen1.mainloop()
    je voudrais qu'il regénère un code quand je rappuie sur le bouton. mais je sèche.

    merci de votre concours. je précise que je débute donc merci de ne pas trop me remplir de chose complexes

    merci à vous!

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    je voudrais qu'il regénère un code
    Pour cela il faudrait exécuter la séquence:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ent1.delete(0,END)
    ent1.insert(0,t)
    quand on appelle "one".

    Autrement dit écrire un do_one du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def do_one():
        t = one()
        ent1.delete(0,END)
        ent1.insert(0,t)
    et re-arranger le code principal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fen1 = Tk()
    Button(fen1,text="generer code",command=do_one).pack()
    ent1 = Entry(fen1)
    ent1.pack()
    do_one() 
    fen1.mainloop()
    note: command=one()est different de command=one.

    Prenez le temps de lire le tuto pour comprendre les bases de la programmation événementielle avec Tk.

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

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 27
    Par défaut
    merci de ta réponse je vais travailler cela tout de suite

    en regardant ce tuto, j'ai remarqué ceci:
    chapitre 8 page 91 sur le pdf (page 113/467). Il est question d'un switcher entre l'affichage de deux dessins.
    à partir de la je me suis essayé à modifier mon programme de la sorte:
    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
    23
    24
    25
    26
     
    from tkinter import *
    from random import randrange
     
    def one():
    	"""
            """
    	ent1.delete(0,END)
    	a = '2 3 4 5 6 7 8 9 a z e r t y u p q s d f g h j k m w x c v b n'
    	a = a.split(' ')
     
    	res = []
    	while len(res) < 8:
    		i = randrange(len(a))
    		res.append(a[i])
     
    	res = ''.join(res)
    	return res
     
    t = one()
     
    fen1 = Tk()
    Button(fen1,text="generer code",command=one).pack()
    ent1 = Entry(fen1)
    ent1.insert(0,t)
    ent1.pack()
    cependant une erreur remonte:
    "NameError: global name 'ent1' is not defined"
    je pensais vu l'exemple que cela fonctionnerait...
    merci pour votre aide.

    cdt

    edit:
    bon j'ai trouvé comment faire sans pour autant rajouter de deuxième fonction
    voici mon code final:
    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
    23
    24
    25
    26
     
    from tkinter import *
    from random import randrange
     
    def one():
    	"""
            """
    	a = '2 3 4 5 6 7 8 9 a z e r t y u p q s d f g h j k m w x c v b n'
    	a = a.split(' ')
     
    	res = []
    	while len(res) < 8:
    		i = randrange(len(a))
    		res.append(a[i])
     
    	res = ''.join(res)
    	ent1.delete(0,END)
    	ent1.insert(0,res)
     
     
    fen1 = Tk()
    Button(fen1,text="generer code",command=one).pack()
    ent1 = Entry(fen1)
    ent1.pack()
     
    fen1.mainloop()
    par contre si quelqu'un pouvait m'expliquer l'erreur que j'ai obtenu pour ma deuxième tentative, ça serait bien sympa merci! =)

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par ivigu Voir le message
    en regardant ce tuto, j'ai remarqué ceci:
    chapitre 8 page 91 sur le pdf (page 113/467). Il est question d'un switcher entre l'affichage de deux dessins.
    Hu?!? Postez l'URL plutôt que de me demander de charger le PDF, trouver la page,...

    cependant une erreur remonte:
    "NameError: global name 'ent1' is not defined"
    je pensais vu l'exemple que cela fonctionnerait...
    merci pour votre aide.
    Python est un langage interprété. Rien n'interdit d’écrire une fonction one qui utilisera une variable globale qui n'existe pas encore. Par contre, lorsque la fonction sera appelée, ca pete NameError.
    Relisez le bout de code que je vous ai cuisine et regardez ou sont places les appels a do_one.

    Profitez de la lecture des premiers chapitres du tuto.

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

Discussions similaires

  1. soucis python tkinter
    Par crazyan dans le forum Général Python
    Réponses: 1
    Dernier message: 19/06/2013, 08h25
  2. Soucis avec Tkinter
    Par Morsounet dans le forum Tkinter
    Réponses: 13
    Dernier message: 01/06/2011, 21h24
  3. soucis de bouclage avec for
    Par schwinny34 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 16/04/2010, 11h50
  4. Réponses: 2
    Dernier message: 03/10/2002, 17h24

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