Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ligne de code manquante

    15 mai 2021 à 18:37:47

    def execution():
        efface_carre()
        efface_triangle()
        efface_rond()
        while not stop_button.click:
            lecarre()
            letriangle()
            lerond()
    stop_button = Button(frame1, text='Stop',font=('Montserrat',20),bg ='#A8B9CE')
    stop_button.grid(row=1,column=0,padx=1,pady=5,ipadx=11)
    Donc voilà mon problème, j'aimerais connaitre la ligne de code à écrire au niveau du while du style:
    "Tant que le bouton stop n'a pas été clické, continuer" Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      15 mai 2021 à 20:02:21

      plutôt

      if not stop_button_click:
          lecarre()
          ...
      

      que while.

      -
      Edité par fred1599 15 mai 2021 à 20:02:40

      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        15 mai 2021 à 20:51:33

        Je ne pense pas qu'un Button tkinter ait click comme attribut... sinon çà en causerait dans la documentation.

        Pour ce qui est de faire une boucle "tant que" avec tkinter, c'est toute la logique de tkinter qu'il faut comprendre. Le plus facile sera d'uitilser une variable d'état et de l'appel répété à une fonction (via after) qui ira le tester. Et si vous ne comprenez pas trop ce que je raconte, il va falloir ouvrir un tuto. ou attendre qu'une bonne âme daigne écrire le code pour vous. (moi je ne suis pas le père noêl à qui on peut demander les cadeaux de ses rêves: si vous avez besoin de coder, vous apprenez...).

        • Partager sur Facebook
        • Partager sur Twitter
          15 mai 2021 à 22:19:04

          mps a écrit:

          Je ne pense pas qu'un Button tkinter ait click comme attribut... sinon çà en causerait dans la documentation.

          Sauf s'il a été créé préalablement par tes soins.

          • Partager sur Facebook
          • Partager sur Twitter

          Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
          La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

            16 mai 2021 à 13:15:57

            from tkinter import *
            from tkinter import ttk, messagebox
            from turtle import *
            import random
            
            
            #Paramétrage de la fenêtre
            window = Tk()
            window.title('Pypaint')
            window.geometry('992x700')
            window.minsize(992,700)
            window.maxsize(992,700)
            window.iconbitmap('pinceau.ico')
            bg = '#B8CBD0'
            bg_titre = '#344D59'
            bg_boutton = '#344D59'
            bg_oeuvre = '#7A90A4'
            window.config(bg=bg)
            
            frame1 = Frame(window, bg=bg)
            frame2 = Frame(window, bg=bg)
            
            canvas = Canvas(window,width=680,height=454,bd=0,highlightthickness =0)
            canvas.place(x=272,y=20)
            
            
            colors = ["red","blue","lightblue","green","lightgreen","purple","yellow",
                      "orange","pink","brown","grey","lightgrey","black","white"]
            cbox= ttk.Combobox(frame2, values=colors)
            cbox.config(font=('Helvetica',10),width=15)
            cbox.set('Choisis ta couleur')
            cbox.grid(row=1,column=0,pady=15)
            cbox['state']= 'readonly'
            
            tbox= ttk.Combobox(frame2, values=colors)
            tbox.config(font=('Helvetica',10),width=15)
            tbox.set('Choisis ta couleur')
            tbox.grid(row=1,column=1,pady=15)
            tbox['state']= 'readonly'
            
            rbox= ttk.Combobox(frame2, values=colors)
            rbox.config(font=('Helvetica',10),width=15)
            rbox.set('Choisis ta couleur')
            rbox.grid(row=1,column=2,pady=15)
            rbox['state']= 'readonly'
            
            
            
            def lecarre():
                carre = RawTurtle(canvas)
                carre.shape("square")
                carre.color(cbox.get())
                carre.width(30)
                carre.speed(0)
                carre.penup()
                x = random.randint(-360,360)
                y = random.randint(-247,247)
                z = random.randint(50,500)
                carre.setpos(x,y)
                carre.pendown()
                for i in range(4):
                    carre.forward(z)
                    carre.left(90)
                carre.penup()
                carre.setpos(700, 500)
            
            def letriangle():
                triangle = RawTurtle(canvas)
                triangle.shape("triangle")
                triangle.color(tbox.get())
                triangle.width(30)
                triangle.speed(0)
                triangle.penup()
                x = random.randint(-360,360)
                y = random.randint(-247,247)
                z = random.randint(50, 500)
                triangle.setpos(x,y)
                triangle.pendown()
                for i in range(3):
                    triangle.forward(z)
                    triangle.left(120)
                triangle.penup()
                triangle.setpos(700, 500)
            
            def lerond():
                rond = RawTurtle(canvas)
                rond.shape("circle")
                rond.color(rbox.get())
                rond.width(30)
                rond.speed(0)
                rond.penup()
                x = random.randint(-360,360)
                y = random.randint(-247,247)
                z = random.randint(25,250)
                rond.setpos(x,y)
                rond.pendown()
                rond.circle(z)
                rond.penup()
                rond.setpos(700, 500)
            
            def illustration_carre():
                carre = RawTurtle(canvas)
                carre.shape("square")
                carre.speed(8)
                carre.penup()
                carre.setpos(-200, -50)
                carre.fillcolor(cbox.get())
                carre.begin_fill()
                carre.pendown()
                for i in range(4):
                    carre.forward(40)
                    carre.left(90)
                carre.end_fill()
                carre.penup()
                carre.setpos(700, 500)
            
            def illustration_triangle():
                triangle = RawTurtle(canvas)
                triangle.shape("triangle")
                triangle.speed(8)
                triangle.penup()
                triangle.setpos(0, -50)
                triangle.fillcolor(tbox.get())
                triangle.begin_fill()
                triangle.pendown()
                for i in range(3):
                    triangle.forward(40)
                    triangle.left(120)
                triangle.end_fill()
                triangle.penup()
                triangle.setpos(700, 500)
            
            def illustration_rond():
                rond = RawTurtle(canvas)
                rond.shape("circle")
                rond.speed(8)
                rond.penup()
                rond.setpos(200, -50)
                rond.fillcolor(rbox.get())
                rond.begin_fill()
                rond.pendown()
                rond.circle(20)
                rond.end_fill()
                rond.penup()
                rond.setpos(700, 500)
            
            def efface_carre():
                carre = RawTurtle(canvas)
                carre.shape("square")
                carre.speed(8)
                carre.penup()
                carre.setpos(-200, -50)
                carre.color('white')
                carre.fillcolor('white')
                carre.begin_fill()
                carre.pendown()
                for i in range(4):
                    carre.forward(40)
                    carre.left(90)
                carre.end_fill()
                carre.penup()
                carre.setpos(700, 500)
            
            def efface_triangle():
                triangle = RawTurtle(canvas)
                triangle.shape("triangle")
                triangle.speed(8)
                triangle.penup()
                triangle.setpos(0, -50)
                triangle.color('white')
                triangle.fillcolor('white')
                triangle.begin_fill()
                triangle.pendown()
                for i in range(3):
                    triangle.forward(40)
                    triangle.left(120)
                triangle.end_fill()
                triangle.penup()
                triangle.setpos(700, 500)
            
            def efface_rond():
                rond = RawTurtle(canvas)
                rond.shape("circle")
                rond.speed(8)
                rond.penup()
                rond.setpos(200, -50)
                rond.color('white')
                rond.fillcolor('white')
                rond.begin_fill()
                rond.pendown()
                rond.circle(20)
                rond.end_fill()
                rond.penup()
                rond.setpos(700, 500)
            
            
            def execution():
                efface_carre()
                efface_triangle()
                efface_rond()
                while True:
                    lecarre()
                    letriangle()
                    lerond()
            
            def titre_oeuvre():
                canvas_title = Canvas(window, width=680, height=50, bg=bg_oeuvre, bd=5, highlightthickness=0, relief=RAISED)
                canvas_title.place(x=267, y=474)
                plume = RawTurtle(canvas_title)
                plume.color('white')
                plume.hideturtle()
                plume.penup()
                plume.setpos(0,-15)
                global box_title
                box_title = Toplevel(window)
                box_title.title("Pypaint")
                box_title.geometry("320x150")
                box_title.iconbitmap('pinceau.ico')
                box_title.minsize(320, 150)
                box_title.maxsize(320, 150)
                box_title.config(bg=bg)
                mini_frame = Frame(box_title,bg=bg)
                ordre = Label(mini_frame, text='Mettez donc un titre à votre chef-d\'oeuvre', font =('Montserrat', 10),bg=bg,fg=bg_titre)
                ordre.grid(row=0,column=0,pady=10)
                a = StringVar()
                le_nom = Entry(mini_frame, width=30, textvariable=a,)
                le_nom.grid(row=1, column=0, pady=10)
                a.set("Le nom, la date")
                def titre():
                    plume.pendown()
                    plume.write(a.get(),move=False,align='center',font=('Helvetica',20,"bold"))
                    canvas_title.configure(bg=bg_oeuvre)
                    box_title.destroy()
                entrer = Button(mini_frame, text='Entrer',font=('Montserrat', 10),bg=bg_boutton,fg='white',command=titre)
                entrer.grid(row=2,column=0,pady=10)
                mini_frame.pack()
            
            
            
            
            
            Title = Label(window, text='Pypaint', font =('Montserrat', 40), bg =bg,fg=bg_titre)
            Title.place(x=15,y=590)
            
            #Boutons start et stop
            start_button = Button(frame1, text='Start',font=('Montserrat',20),bg =bg_boutton,fg='white',command=execution)
            start_button.grid(row=0,column=0,padx=1,pady=10,ipadx=10)
            stop_button = Button(frame1, text='Stop',font=('Montserrat',20),bg =bg_boutton,fg='white',command=titre_oeuvre)
            stop_button.grid(row=1,column=0,padx=1,pady=10,ipadx=11)
            
            ###
            
            #Boutons carré,triangle et rond
            carre_button = Button(frame2, text='C',font=('Montserrat',20),bg =bg_boutton,fg='white',command=illustration_carre)
            carre_button.grid(row=0,column=0,ipadx=8)
            triangle_button = Button(frame2, text='T',font=('Montserrat',20),bg =bg_boutton,fg='white',command=illustration_triangle)
            triangle_button.grid(row=0,column=1,ipadx=9,padx=100)
            rond_button = Button(frame2, text='R',font=('Montserrat',20),bg =bg_boutton,fg='white',command=illustration_rond)
            rond_button.grid(row=0,column=2,ipadx=8)
            ###
            
            frame1.place(x=65,y=100)
            frame2.place(x=362,y=560)
            
            
            window.mainloop()
            Violà en gros mon code python, j'ai éssayé @fred1599 mais cela ne fonctionne pas c'est d'ailleurs c'est embêtant car si je parviens a trouver cette ligne de code je finis mon projet

            -
            Edité par Irréprochable 16 mai 2021 à 13:17:05

            • Partager sur Facebook
            • Partager sur Twitter
              17 mai 2021 à 17:58:08

              ton problème c'est de savoir si on a cliqué ou pas sur le bouton ? donc si le bouton lance une fonction qui change l'état d'une variable booléenne, et que tu testes cette variable (sans oublier de la remettre à l'état initial à un moment)
              • Partager sur Facebook
              • Partager sur Twitter

              Ligne de code manquante

              × 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