Canevas infobulle tkinter

Fermé
Fuh Da emon - 9 févr. 2013 à 15:37
 Fuh Da emon - 10 févr. 2013 à 20:55
Bonjour,
Je voudrais creer un bouton qui incruste une croix noire dans le dernier cercle tout en permettant de remplir un infobulle localisé à l'emplacement de cette croix.

Est-ce possible à intégrer dans ce code ?


#!/musr/bin/env python
# -*- coding: utf-8 -*-
from Tkinter import *
import Tkinter as tk
from idlelib import ToolTip

def Cercle(event):
""" Dessine un cercle de centre (x,y) et de rayon r """
x = event.x
y = event.y
r = 5
# on dessine un cercle dans la zone graphique
item = Canevas.create_oval(x-r, y-r, x+r, y+r, outline='blue', fill='blue')
# on ajoute l'item dans la liste
ListeItemCercles.append(item)
print "Création du cercle (item" , item ,")"
# affichage de tous les items de Canevas
print Canevas.find_all()

def Undo():
""" Efface le dernier cercle"""
if ListeItemCercles != []:
item = ListeItemCercles[-1]
# on efface le cercle
Canevas.delete(item)
# on supprime l'item de la liste
del ListeItemCercles[-1]
print "Suppression du cercle (item" , item ,")"
# affichage de tous les items de Canevas
print Canevas.find_all()


# Initialisation de la liste des items des cercles
ListeItemCercles = []

# Création de la fenêtre principale (main window)
Mafenetre = Tk()
Mafenetre.title('Sh')

# Image de fond
photo = PhotoImage(file="/home/python/Bureau/v.gif")

# Création d'un widget Canvas (zone graphique)
Largeur = 666
Hauteur = 666
Canevas = Canvas(Mafenetre,width = Largeur, height =Hauteur)
item = Canevas.create_image(0,0,anchor=NW, image=photo)
print "Image de fond (item",item,")"
Canevas.pack()

#clic gauche lié au cercle
Canevas.bind("<Button-1>", Cercle)

# Création d'un widget Button
BoutonEffacer = Button(Mafenetre, text ='Effacer', command = Undo)
BoutonEffacer.pack(side = LEFT, padx = 10, pady = 10)

# Création d'un widget Button (bouton Quitter)
BoutonQuitter = Button(Mafenetre, text ='Quitter', command = Mafenetre.destroy)
BoutonQuitter.pack(side = LEFT, padx = 10, pady = 10)

Mafenetre.mainloop()

A voir également:

1 réponse

Il y a bien la fonction create_arc(), mais elle me sort des histoires de wrong coordinate par rapport à item.

HEEELP
0