Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher/Masquer un bouton (Python)

Débutant et problèmes de compréhension

Sujet résolu
    17 mai 2013 à 18:47:15

    Bonjour,

    je suis en Terminale S et j'ai pour projet de fin d'année, de créer un programme de Memory (le jeu où l'on doit retrouver deux cartes identiques parmi plusieurs paires).

    Je l'ai basé (avec mon groupe) sur l'affichage de boutons, je m'explique, nous avons positionné des images à des coordonnées précises avec le module tkinter, et nous avons créer un bouton pour chaque image (en déterminant les coordonnées également).

    Nous avons créer une fonction "commencer" qui importe les images aux coordonnées décidées, puis une "masquer" qui fait apparaître les boutons par-dessus les images.

    Lorsque l'on clique sur un bouton, celui-ci "s'efface" et laisse apparaître l'image, nous avons utilisé l'action suivante : bouton.lower()
    mais lorsque les deux images sélectionnées ne sont pas identiques, il faut que le bouton réapparaisse, et je ne sais pas quelle fonction employer, nous avons essayé avec un copier/coller de la fonction "commencer" en la renommant, sachant qu’elle fait apparaître les boutons au commencement, nous pensions qu'elle les ré-afficheraient aux mêmes coordonnées, mais cela n'est pas concluant. Par conséquent, nous avons essayé avec bouton.pack() et le bouton réapparaît bien aux coordonnées déterminées d'office.

    Nous avons importé un timer peut-être est-ce pour cela, ou l'organisation du programme ne convient peut-être pas. Nous avons cherché sur les forums une fonction pour faire ré-apparaître les boutons, mais sans résultat... :/

    Je dépose en code ce que nous avons de base

    Pouvez-vous apporter une explication ?

    Merci d'avance :) 


    from tkinter import*
    import threading #module
    import time
    
    f=Tk()
    c=Canvas(f,width=1500,height=650)
    c.pack() 
    
    def commencer(): 
            img=c.create_image(largeur+220,hauteur+60,image=photo1)
            img=c.create_image(largeur+535,hauteur+200,image=photo1)
            
            a.start()
    
    def masquer():      
            abeille.place(x=255,y=90)
            abeille2.place(x=570,y=230)
            
            a.cancel()
    
    def supprimerA(): 
        abeille.lower() 
    def supprimerJ():
        abeille2.lower()
    
    def recommencer():       
            abeille.place(x=254,y=91)
            abeille2.place(x=570,y=230)
    
    a=threading.Timer(2, masquer)
    
    photo1=PhotoImage(file="abeille.gif") 
    largeur=photo1.width() 
    hauteur=photo1.height()
    
    abeille=Button(f,text='A',padx=30, pady=25, font=("Modern No. 20", 14), command=supprimerA) 
    abeille2=Button(f,text='J',padx=30, pady=25, font=("Modern No. 20", 14), command=supprimerJ)
    
    commence = Button(f, text='Commencer', padx=30, pady=15, relief="raised", borderwidth=5, font=("Modern No. 20", 14, "bold"), fg="blue", command=commencer) 
    commence.pack(side="left")
    
    bouton_quitter = Button(f, text="Quitter", padx=30, pady=15, relief="raised", borderwidth=5, font=("Modern No. 20", 14, "bold"), fg="blue", command=f.destroy)
    bouton_quitter.pack(side="right")
    
    recommencer = Button(f,text='Recommencer', padx=30, pady=15, relief="raised", borderwidth=5, font=("Modern No. 20", 14, "bold"), fg="blue", command=recommencer)
    recommencer.pack(side="bottom")
    


    Image qui est utilisé dans le code



    • Partager sur Facebook
    • Partager sur Twitter
      17 mai 2013 à 21:05:06

      Salut,

      La méthode lower() agit en plaçant le bouton sous la photo. Pour la faire remonter, utilise la méthode abeille.lift().

      • Partager sur Facebook
      • Partager sur Twitter
        17 mai 2013 à 23:11:02

        Merci beaucoup, c'était tout bête, mais il fallait le savoir ^^
        Merci !! :)
        • Partager sur Facebook
        • Partager sur Twitter

        Afficher/Masquer un bouton (Python)

        × 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