Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tkinter | Page

    14 mars 2018 à 15:42:57

    Bonjour, je fait appelle à vous car je n'ai pas su trouver les réponses.

    Je cherche à "nettoyer" la fenêtre tkinter et y rajouter des widgets par la suite, auriez-vous une idée ?

    • Partager sur Facebook
    • Partager sur Twitter
      14 mars 2018 à 17:52:15

      Salut,

      Pour nettoyer une fenêtre,vous avez trois méthodes

      # Méthode #1

      Si vous avez des widgets, il suffit de les enlever, en les oubliant.

      À l'aide de:

      • pack_forget() # Si vous utilisez pack()
      • grid_forget() # Si vous utiliser grid()
      • ...

      # Méthode #2

      Si vous avez un canva, et que vous voulez nettoyez ce canva, il suffit de faire: .

      • delete('all') # Pour tout supprimer les ITEMS dans le canva.
      • delete(id_item) # Pour supprimer qu'un item choisit, selon son ID

      # Méthode #3

      Sinon, vous pouvez très bien, créer des frames un par dessus l'autre. Chaque frame aurait ces propres widgets. Ensuite, il suffit d'utiliser tkraise(), pour mettre un frame en avant-plan.

      PS: Vous avez tous les mot clefs, pour continuer. Regardez et lisez la documentation, elle sera utile.

      N'hésitez pas pour les questions.

      Bonne chance

      A+

      • Partager sur Facebook
      • Partager sur Twitter
        14 mars 2018 à 21:02:37

        Merci beaucoup, mais je viens de me rendre compte que Tkinter est beaucoup trop limité pour le projet que j'envisage, j'ai donc opté pour pygame. Cependant j'ai refait une dizaine de recherches mais toujours aucunes infos viables sur "nettoyer" la page de la fenetre.  Si quelqu'un serait me diriger, je suis preneur. Admet-on que je veux enlever 2 labels. Comment procéder ?

        -
        Edité par AXT1 14 mars 2018 à 21:04:40

        • Partager sur Facebook
        • Partager sur Twitter
          16 mars 2018 à 16:52:43

          Salut,

          Vous voulez enlever deux labels, je présume donc, que vous parlez de Tkinter...

          Voici deux exemples.

          ## Exemple #1 (Des labels)

          import tkinter as tk
          
          fenetre = tk.Tk()
          
          ## Labels Premier
          labelA = tk.Label(fenetre, text='LabelA')
          labelA.pack()
          labelB = tk.Label(fenetre, text='LabelB')
          labelB.pack()
          
          ## Labels Deuxième
          labelC = tk.Label(fenetre, text='LabelC')
          labelD = tk.Label(fenetre, text='LabelD')
          
          
          def remove_labels():
              labelA.pack_forget()
              labelB.pack_forget()
              labelC.pack()
              labelD.pack()
          
              ## Puisque l'on utilise .pack(), le bouton sera au début
              ## Pour le remettre comme il était (en bas des labels)
              ## On l'oublie et/ou le replace, selon votre choix.
              bouton.pack_forget()
              #bouton.pack()
              
          bouton = tk.Button(fenetre, text='Appuyez', command=remove_labels)
          bouton.pack()
          
          fenetre.mainloop()

          ## Exemple #2 (Des frames)

          import tkinter as tk
          
          fenetre = tk.Tk()
          
          ## Frame A et ces widgets
          frameA = tk.Frame(fenetre)
          frameA.pack() ## Positionnement du frame A
          labelA = tk.Label(frameA, text='LabelA')
          labelA.pack()
          labelB = tk.Label(frameA, text='LabelB')
          labelB.pack()
          
          ## Frame B et ces widgets (pas de positionnement du frame B)
          frameB = tk.Frame(fenetre)
          labelC = tk.Label(frameB, text='LabelC')
          labelC.pack()
          labelD = tk.Label(frameB, text='LabelD')
          labelD.pack()
          
          def remove_labels():
              frameA.pack_forget() ## Enlève
              frameB.pack() ## Ajoute
          
              ## Puisque l'on utilise .pack(), le bouton sera au début
              ## Pour le remettre comme il était (en bas des labels)
              ## On l'oublie et le replace.
              bouton.pack_forget()
              bouton.pack()
              
          bouton = tk.Button(fenetre, text='Appuyez', command=remove_labels)
          bouton.pack()
          
          fenetre.mainloop()
          

          Dans les deux exemples, lorsque l'on oublie des widgets (.pack_forget()), les widgets qui restent ce placeront en premier. Donc, ici, le bouton se positionnera au début.

          Pour le remettre à la fin (en bas des labels), on l'oublie et le repositionne. (Comme l'Exemple #2)

          Si c'est exemple, ne sont pas utiles, essayez de nous donner un bout de code, pour que l'on crée un exemple qui fonctionnera selon vos besoins. Sinon, c'est dure d'essayer de vous aider, sans code.

          Bonne chance

          A+

          • Partager sur Facebook
          • Partager sur Twitter

          Tkinter | Page

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown