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 :

Création automatique d'entry box sur Tkinter


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingenierie
    Inscrit en
    Février 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingenierie
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2021
    Messages : 1
    Par défaut Création automatique d'entry box sur Tkinter
    Bonjour,
    Cela fait depuis hier que je cherche une réponse à ma question.
    J'essaye de créer un GUI en utilisant Tkinter sur python (je tiens à préciser que je suis débutant). Alors mon soucis, c'est que je veux que lorsqu'on met un certain nombre dans une entry box, je veux qu'il y ait une création automatique d'entry box en fonction du nombre que l'on a mis.
    Pour être plus clair, je vous mettrai en pièce jointe le programme, mais en gros je souhaite que lorsque je met "4" par exemple dans "Nombre de couche", il y a 4 entry box qui apparaissent juste en dessous (en appuyant sur un button que j'ai mis). J'ai essayer de mettre une fonction "if" mais cela ne marche pas.
    Pouvez-vous m'apporter de l'aide svp ?
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,

    Citation Envoyé par Saylaab Voir le message
    je vous mettrai en pièce jointe le programme, mais en gros je souhaite que lorsque je met "4" par exemple dans "Nombre de couche", il y a 4 entry box qui apparaissent juste en dessous
    Si vous postez du code, c'est pour montrer ce que vous avez essayé de faire pour résoudre la question posée (pas 200 lignes de code qui n'ont rien à voir).

    Au départ, il faut créer une Entry et un Button sur lequel l'utilisateur cliquera pour valider la fin de la saisie. Le callback associé ira lire le nombre contenu dans l'Entry et créera le nombre d'entries correspondants.

    Si vous ne savez pas par où commencer, ouvrez un tuto. et passez y un peu de temps car programmer avec tkinter n'est pas si intuitif.

    Et si vous avez des difficultés, postez ce que vous avez essayé de faire... çà devrait être quelque chose entre 10 et 20 lignes max.

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

  3. #3
    Membre éprouvé
    Inscrit en
    Juillet 2013
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 80
    Par défaut
    Bonjour,

    Comme indiqué par wiztricks, il faut d'abord comprendre le principe de Tkinter et des widgets ; j'avoue avoir un peu la flemme de voir votre code en intégralité mais j'ai pris quelques minutes pour écrire un exemple de fenêtre avec des widgets Entry.

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    import tkinter as tk
    from tkinter import messagebox
     
    class App(tk.Tk) :
        def __init__(self) :
            tk.Tk.__init__(self)
            self.geometry('300x100')
     
            # Asking for user input
            self.chosenNumber = tk.StringVar(value='How many entries do you want ?')
            entry = tk.Entry(self, textvariable=self.chosenNumber)
            entry.pack(expand=True, fill='x')
     
            # Create "Go" button
            go = tk.Button(self, text='Go', command=self.go)
            go.pack()
     
            # List with future user entries
            self.entries = []
     
        def go(self) :
            # Check if user entry is valid
            try : N = int(self.chosenNumber.get())
            except ValueError :
                tk.messagebox.showerror(master=self, message='Select a number please !')
                return
     
            # Create and display entries
            for i in range(N) :
                # Feed the list of user entries
                temp = tk.StringVar(self, value='Entry n°%d'%i)
                self.entries.append(temp)
     
                # Display entry-boxes
                entry = tk.Entry(self, textvariable=temp)
                entry.pack()
     
    app = App()
    app.mainloop()
    PS : il n'est pas "nécessaire" de créer une classe, mais c'est une habitude que j'ai prise qui simplifie beaucoup les choses par la suite lorsque le code devient plus complexe

Discussions similaires

  1. Validation de saisie sur Tkinter.Entry
    Par robx2309 dans le forum Général Python
    Réponses: 6
    Dernier message: 20/06/2013, 14h59
  2. Création automatique de fiches sur bouton
    Par Jigsaw80 dans le forum IHM
    Réponses: 8
    Dernier message: 30/08/2012, 10h39
  3. Réponses: 16
    Dernier message: 03/12/2011, 22h30
  4. Réponses: 4
    Dernier message: 09/02/2011, 11h01
  5. [XL-2003] Plantage systematique sur la création automatique d'une macro
    Par Gautheron dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/05/2009, 07h20

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