Voilà
J'aimerai mettre une image d'un bouton à cliquer dans un canvas, mais je ne sais pas comment faire pour rendre ce canvas cliquable et que cela lance une action.
Merci
Voilà
J'aimerai mettre une image d'un bouton à cliquer dans un canvas, mais je ne sais pas comment faire pour rendre ce canvas cliquable et que cela lance une action.
Merci
Tu veux dire mettre un bouton en dehors du canvas?
C'est a dire dans la fenetre, quand tu clique sur le bouton ca t'envoi l'action dans la fenetre?
non une image dans un create_image
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 from Tkinter import * root = Tk() c = Canvas(root,) c.pack() # image fond = PhotoImage(file="C:\Python24\projet lecture media\interface_1.gif") bouton = PhotoImage (file="C:\Python24\projet lecture media\choisir.gif") #image de fond c.create_image(0, 0, image=fond) # bouton cliquable (50, 50) c.create_image(50, 50, image=bouton) root.mainloop()
Salut,
Les tags me semblent tout à fait désginés pour ce genre de tâches :
Note : il est possible d'affecter le même tag à plusieurs items du canevas.Code:
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 #!/usr/bin/env python # -*- coding:utf-8 -*- from Tkinter import * def f_choisir(event): print "callback choisir" root = Tk() c = Canvas(root,) c.pack() # image fond = PhotoImage(file="img_fond.gif") bouton = PhotoImage (file="img_choisir.gif") #image de fond # anchor=NW -> positionne dans le coin supérieur gauche (nord-ouest) c.create_image(0, 0, image=fond, anchor=NW) # bouton cliquable (50, 50) c.create_image(50, 50, image=bouton, tag="choisir") # tag_bind(<nom du tag>, <nom event>, <fonction callback>) c.tag_bind("choisir", "<Button-1>", f_choisir) root.mainloop()
Merci ça marche très bien
Bonjour a tous, je sais que ce topic est résolu depuis bien longtemps déja, mais j'ai un peu le même probleme et je n'arrive pas a comprendre quelque truc...
tout d'abord, a quoi sert la fonction tag , je n'arrive pas a comprendre.. et qu'est ce qu'io faut remplacer par "choisir" et "Bouton1" ...?
Merci :?
Une autre petite question,
Qu'est ce qu'il faut mettre a la place de event en définissant la fonction si on définit une autre fonction avec un autre bouton? et par quoi il faut remplacer le "<button-1>", je l'ai remplacer par <button-2> mais ca ne fonctionne pas , ça ne me renvoi pas a ma deuxième fonction...
Mon programme :
Pièce jointe 203612
from tkinter import *
def power(event):
quit()
def bleu():
print("a")
root = Tk()
c = Canvas(root,)
c.pack()
# image
'''fond = PhotoImage(file="a faire")'''
bouton1 = PhotoImage (file="power.gif")
bouton2 = PhotoImage (file="bleu")
#image de fond
'''c.create_image(0, 0, image=fond, anchor=NW)'''
# bouton cliquable (50, 50)
c.create_image(100, 150, image=bouton1, tag="c1")
c.create_image(300,150,image=bouton2, tag="c2")
# tag_bind(<nom du tag>, <nom event>, <fonction callback>)
c.tag_bind("c1", "<Button-1>", power)
c.tag_bind("c2","<Button-2>", bleu)
root.mainloop()
Salut,
L'auteur de la réponse a indiqué en commentaire l'usage de tag_bind
Donc "choisir" est le nom du tag que l'on veut lier.Code:
1
2
3
4 c.create_image(50, 50, image=bouton, tag="choisir") # tag_bind(<nom du tag>, <nom event>, <fonction callback>) c.tag_bind("choisir", "<Button-1>", f_choisir)
"<Button-1>" définit le bouton gauche de la souris.
et "f_choisir" est la fonction qui sera appelée.
Ce qui veut dire que tu peux choisir de nommer ton tag et ta fonction autrement.
Est-ce cela ta question ?
Edit: Je répondais à ton premier message, en fait. Les "<Button-X>" sont ceux de la souris, autre numéro == autre bouton.