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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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()
<3 Debian
[ C | C++ | PHP | Python ]
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 :
boutons image.py
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager