Aide pour tkinter
3.1415926535897932384626433832795028
-
3.14159265358979 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
3.14159265358979 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'essaye de programmer sur python à l'aide de tkinter quelque chose qui s'approche du logiciel géogébra (logiciel pour tracer des figures géométriques). Pour l'instant j'ai réussit à ouvrir une fenêtre tkinter et à faire en sorte qu'un point soit créé lorsque l'on clique dessus. Mais j'aimerais créer comme sur géogébra une barre horizontale en haut de ma fenêtre tkinter qui contiendrait des boutons qui, lorsqu'on clique dessus change le statut d'une variable et donc la fonction lorsque l'on clique sur la fenêtre tkinter. ex: on a appuyé sur un bouton "point" le clique appel la fonction tracePoint (sauf si on clique sur un autre bouton) et si on clique sur le bouton "droite" les deux cliques suivants génèrent une droite...etc
j'essaye de programmer sur python à l'aide de tkinter quelque chose qui s'approche du logiciel géogébra (logiciel pour tracer des figures géométriques). Pour l'instant j'ai réussit à ouvrir une fenêtre tkinter et à faire en sorte qu'un point soit créé lorsque l'on clique dessus. Mais j'aimerais créer comme sur géogébra une barre horizontale en haut de ma fenêtre tkinter qui contiendrait des boutons qui, lorsqu'on clique dessus change le statut d'une variable et donc la fonction lorsque l'on clique sur la fenêtre tkinter. ex: on a appuyé sur un bouton "point" le clique appel la fonction tracePoint (sauf si on clique sur un autre bouton) et si on clique sur le bouton "droite" les deux cliques suivants génèrent une droite...etc
Configuration: Windows / Firefox 83.0
3 réponses
Bonjour pi,
Pourrais-tu nous afficher ton code ici ?
L'indentation étant importante en Python, merci de re poster ton code avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci :
Pourrais-tu nous afficher ton code ici ?
L'indentation étant importante en Python, merci de re poster ton code avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci :
def test(): print('test') test()
"""____________________________________________________________________""" """---------------------------Initialisation---------------------------""" """____________________________________________________________________""" import random import time from tkinter import * root = Tk() canvas = Canvas(root, width=1600, height=1200, background="white") canvas.pack(side=LEFT,padx=5,pady=5) """_____________________________________________________________________""" """---Fonctions exécutées sans interaction avec l'interface graphique---""" """_____________________________________________________________________""" # calculs intermédiaires qui se font juste via python vide pour l'instant """____________________________________________________________________""" """---Fonctions exécutées en interactions avec l'interface graphique---""" """____________________________________________________________________""" def coord(event):#récupère les coordonèes d'un click x=event.x y=event.y #print("Le clique est détecté à x="+ str(x) +" y="+str(y)) return(x,y) def create_point(event):#créer un point avec un click canvas.focus_set() x=event.x y=event.y canvas.create_rectangle(x-2,y-2,x+2,y+2,fill='black') print("Point créé à x=",x,",y=",y) return def create_point2(x,y):#créé un point avec des coordonnées canvas.focus_set() canvas.create_rectangle(x-2,y-2,x+2,y+2,fill='black') print("Point créé à x=",x,",y=",y) return global coord_segment coord_segment=[] def create_segment(event):#créé un segment canvas.focus_set() x1,y1=coord(event) coord_segment.append([x1,y1]) if len(coord_segment)>=2: canvas.create_line(coord_segment[0][0],coord_segment[0][1],coord_segment[1][0],coord_segment[1][1]) create_point2(coord_segment[0][0],coord_segment[0][1]) create_point2(coord_segment[1][0],coord_segment[1][1]) coord_segment.pop() coord_segment.pop() return([]) #Association clic/action canvas.bind("<Button-1>",create_point) #clique gauche canvas.bind("<Button-3>",create_segment)#clique droit """ <Button-1> click gauche <Button-2> click molette <Button-3> click droite """ """____________________________________________________________________""" """------------------Lancement de la fenêtre tkinter-------------------""" """____________________________________________________________________""" #Lancement root.mainloop()
Super, c'est très bien
As-tu une doc tkinter pour savoir comment créer des boutons ?
Dans les paramètres du bouton, on peut donner le nom d'une fonction à exécuter
Je te donne un exemple:
Sinon, une doc sympa:
https://python.developpez.com/cours/apprendre-python3/
il y a comment faire aussi des menus déroulants
As-tu une doc tkinter pour savoir comment créer des boutons ?
Dans les paramètres du bouton, on peut donner le nom d'une fonction à exécuter
Je te donne un exemple:
def creer_ligne() ''' cette fonction créé une ligne''' button = Button(canvas, text="Créer une ligne", command=creer_ligne) button.pack(.....
Sinon, une doc sympa:
https://python.developpez.com/cours/apprendre-python3/
il y a comment faire aussi des menus déroulants