Partage
  • Partager sur Facebook
  • Partager sur Twitter

Déplacer des objets à l'aide d'un bouton (Tkinter)

    24 mai 2019 à 0:08:27

    from tkinter import *
    
    fen = Tk()
    fen.title("Vortex")
    fen.minsize(710,500)
    fen.maxsize(710,500)
    fen.config(background="bisque")
    
    boitetitre=Frame(fen, bd=5,bg="#41B77F",relief=RAISED)
    label=Label(boitetitre,text="Vortex",font=("Courrier",20),bg="#41B77F",fg="white")
    label.pack()
    boitetitre.place(x=315,y=0)
    
    boitenb1=Frame(fen,bd=10,bg="#41B87F",relief=RAISED)
    boitenb1.place(x=200,y=100)
    labelnb1=Label(boitenb1,text="2", width="6", height="3")
    labelnb1.grid()
    
    boitenb2=Frame(fen,bd=10,bg="#41B87F",relief=RAISED)
    boitenb2.place(x=325,y=100)
    labelnb2=Label(boitenb2,text="4", width="6", height="3")
    labelnb2.grid()
    
    boitenb3=Frame(fen,bd=10,bg="#41B87F",relief=RAISED)
    boitenb3.place(x=450,y=100)
    labelnb3=Label(boitenb3,text="7", width="6", height="3")
    labelnb3.grid()
    
    boitenb4=Frame(fen,bd=10,bg="#41B87F",relief=RAISED)
    boitenb4.place(x=200,y=200)
    labelnl4=Label(boitenb4,text="9", width="6", height="3")
    labelnl4.pack()
    
    boitenb5=Frame(fen,bd=10,bg="#41B87F",relief=RAISED)
    boitenb5.place(x=325,y=200)
    labelnb5=Label(boitenb5,text="1", width="6", height="3")
    labelnb5.grid()
    
    boitenb6=Frame(fen,bd=10,bg="#41B87F",relief=RAISED)
    boitenb6.place(x=450,y=200)
    labelnb6=Label(boitenb6,text="5", width="6", height="3")
    labelnb6.grid()
    
    boitenb7=Frame(fen,bd=10,bg="#41B87F",relief=RAISED)
    boitenb7.place(x=200,y=300)
    labelnl7=Label(boitenb7,text="3", width="6", height="3")
    labelnl7.pack()
    
    boitenb8=Frame(fen,bd=10,bg="#41B87F",relief=RAISED)
    boitenb8.place(x=325,y=300)
    labelnb8=Label(boitenb8,text="8", width="6", height="3")
    labelnb8.grid()
    
    boitenb9=Frame(fen,bd=10,bg="#41B87F",relief=RAISED)
    boitenb9.place(x=450,y=300)
    labelnb9=Label(boitenb9,text="6", width="6", height="3")
    labelnb9.grid()
    
    fleche1=PhotoImage(file="fleche1.png")
    framebtn1=Frame(fen,bd=5,bg="#41B87F",relief=RAISED)
    framebtn1.place(x=275,y=170)
    btn1=Button(framebtn1,image=fleche1)
    btn1.grid()
    
    fleche2=PhotoImage(file="fleche2.png")
    framebtn2=Frame(fen,bd=5,bg="#41B87F",relief=RAISED)
    framebtn2.place(x=275,y=270)
    btn2=Button(framebtn2,image=fleche2)
    btn2.grid()
    
    fleche3=PhotoImage(file="fleche3.png")
    framebtn3=Frame(fen,bd=5,bg="#41B87F",relief=RAISED)
    framebtn3.place(x=400,y=170)
    btn3=Button(framebtn3,image=fleche3)
    btn3.grid()
    
    fleche4=PhotoImage(file="fleche4.png")
    framebtn4=Frame(fen,bd=5,bg="#41B87F",relief=RAISED)
    framebtn4.place(x=400,y=270)
    btn4=Button(framebtn4,image=fleche4)
    btn4.grid()
    
    framebtn0=Frame(fen,bd=5,bg="#41B87F",relief=RAISED)
    framebtn0.place(x=330,y=400)
    btn0=Button(framebtn0, text= "Quitter", command = fen.destroy)
    btn0.grid()
    btn0.pack()
    
    fen.mainloop()
    

    Bonsoir, je suis en spé ISN et je dois faire un projet final. Ce projet est un jeu de réflexe. Le jeu possède 9 cases numérotées de 1 à 9 qui sont en désordres. Des boutons sont placés entre les cases, et il faut cliquer sur ces boutons pour faire tourner les numéros par groupes de 4, afin de les replacer dans l’ordre. J'ai fait l'interface graphique, et je rencontre des difficultés pour faire un programme permettant de simuler le jeu. J'ai fait des recherches mais je n'ai pas pu trouvé de réponses. Pourriez-vous m'aider s'il vous plait ?
    • Partager sur Facebook
    • Partager sur Twitter
      24 mai 2019 à 16:21:23

      Bonjour (ou soir, a toi de voir ^^ ),

      1) *J'avais pas vu les frames donc j'avais écrit de la merde désolé ^^ *

      2) Tu pourrais créer les Labels avec une boucle for, cela rendrait beaucoup plus beau et compacte.

      3) Personnellement, j'opterais plutôt sur un canvas que sur des label, plus simple et libre. (par contre j'adore l'apparence de tes boutons ^^ )

      4) Pour afficher un texte sur les labels (ou create_text si tu prends le canvas) aléatoirement, utilise random (from random import *)

      5) Il faudra bind tes labels (ou ton canvas) avec le clique gauche pour détecter le clic.

      -
      Edité par LucasLeDudal 24 mai 2019 à 16:26:29

      • Partager sur Facebook
      • Partager sur Twitter

       "Je ne crois qu'en une seule chose : le pouvoir de la volonté humaine."  - Joseph Stalin

        24 mai 2019 à 22:37:38

        Bonsoir Lucas,

        Merci de m'avoir répondu et aussi pour l'aide que tu m'a apporté. Je vais donc essayer la méthode bind

        • Partager sur Facebook
        • Partager sur Twitter

        Déplacer des objets à l'aide d'un bouton (Tkinter)

        × 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