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 :

Besoin d'aide pour le module Tkinter [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 3
    Par défaut Besoin d'aide pour le module Tkinter
    Bonsoir a vous,

    J'aimerai actuellement creer un jeu sur Python, a l'aide de Tkinter. Pour cela, j'ai cree un menu avec un bouton "PLAY" et un bouton "TUTORIEL". Sauf qu'une fois que l'utilisateur a selectionne ce qu'il voulait faire, j'aimerai que tous les elements du canevas se suppriment (donc le menu) et laissent place a d'autres boutons. Pour cela j'ai tout essaye que ce soit les self.can.destroy, les self.can.delete ou meme self.can.delete(all), rien ne marche ! Ca fait au moins 2 bonnes heures que je cherche sur des forums, j'essaye des choses sur mon programme... J'ai d'ailleurs pu remarque que lorsque je demande la suppression de ma fenetre dans la command du bouton "PLAY", ca fonctionne, mais quand je le fais dans la fonction difficulte, ca ne marche pas...

    Voici mon programme actuel (je ne suis encore au debut et certains boutons n'ont pas de command car je ne suis pas encore arrive la):

    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
    from tkinter import*
    import tkinter.font as tkFont
     
     
    class ecran():
        def __init__(self):
            self.root =Tk()
            self.root.title('THE DYNASAURUS GAME')
            self.can = Canvas(self.root, width=1500, height =1000, bg ='red')
            self.can.pack()
            self.menu()
            self.root.mainloop()
     
        def menu(self):
            self.tutorielButton=Button(font=("Algerian",80),foreground="white",text="TUTORIEL",bg="black",activebackground="white",activeforeground="black")
            self.tutorielButton.place(x=475,y=700)
            self.tittle=Label(bg="red",text = "THE DYNASAURUS GAME",font=("Algerian",97))
            self.tittle.place(x=5,y=10)
            self.playButton=Button(font=("Algerian",80),foreground="white",text="PLAY",bg="black",activebackground="white",activeforeground="black",command=self.difficulte)
            self.playButton.place(x=575,y=400)
     
        def difficulte(self):
            self.can.destroy
            self.facileButton=Button(font=("Algerian",80),foreground="white",text="FACILE",bg="black",activebackground="white",activeforeground="black")
            self.moyenButton=Button(font=("Algerian",80),foreground="white",text="MOYEN",bg="black",activebackground="white",activeforeground="black")
            self.difficileButton=Button(font=("Algerian",80),foreground="white",text="DIFFICILE",bg="black",activebackground="white",activeforeground="black")
            self.facileButton.place(x=500,y=150)
            self.moyenButton.place(x=510,y=400)
            self.difficileButton.place(x=450,y=650)
     
     
    f=ecran()
    Mon probleme est donc que je voudrai supprimer tous les elements du canevas precedents pour en mettre des nouveaux et qu'ils ne se superposent pas. Je suis debutant en Python donc n'hesitez pas aussi si vous voyez quelques erreurs ou ce genre de trucs.

    Je vous remercie de votre aide

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Pour cela j'ai tout essaye que ce soit les self.can.destroy
    Et avez-vous essayer le self.can.destroy() ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 3
    Par défaut
    Bonjour, merci de votre reponse. Je viens d'essayer le self.can.destroy(). Ca a detruit le canvas et c'est ce que je voulais faire, seulement je m'attendais a ce que tous elements du canvas soit supprime avec, sauf que les boutons et le titre de mon jeu reste, seul le fond rouge disparait. J'ai vu qu'il etait possible de detruire tous les elements d'un canvas sans supprimer le canvas. J'ai donc essaye le self.can.delete(all) et le self.can.delete("all"), mais rien ne se passe, je n'ai meme pas de message d'erreurs. Sauriez-vous resoudre mon nouveau probleme ? Merci a vous.

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bonjour,

    Lorsque vous créez vos boutons de menu, vous ne spécifiez pas l'endroit à partir duquel ils doivent être créés, donc par défaut c'est la fenêtre principale (root) et non le canvas comme vous le prétendez.

    Un simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.tutorielButton.destroy()
    à la suite de la destruction du canvas devrait pouvoir le prouver.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 3
    Par défaut
    Merci beaucoup ! En effet vous avez tout juste, j'ai donc modifie l'appartenance en rajoute un self.can au debut de la parenthese de chaque element. Sujet resolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] Besoin d'aide pour tkinter jeu taquin
    Par cilouc dans le forum Général Python
    Réponses: 1
    Dernier message: 18/04/2016, 23h04
  2. [Tkinter] Besoin d'aide pour interface graphique avec Tk
    Par Speedy123 dans le forum Général Python
    Réponses: 2
    Dernier message: 14/02/2016, 17h59
  3. Besoin d'aide pour utiliser le module rarfile 2.5
    Par MediaVistaIntel dans le forum Général Python
    Réponses: 7
    Dernier message: 17/12/2012, 06h34
  4. Besoin d'aide pour installer le module Encode::Detect
    Par bluecurve dans le forum Modules
    Réponses: 3
    Dernier message: 07/12/2006, 13h34

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