ich habe versucht den Hintergrund einiger Bildchen in einer Menueleiste einzufärben, wenn der Mauszeiger rüberfährt, da
"groove" und "raise" echt übel aussehen. Mittels der Mauskoordinaten und dem Eventhandling geht das auch für Bild 1, für Bild 2 nicht, da werden trotzdem das Bindung an den gesamten Frame gebunden ist, nur die Ausmaße des Button verwendet. Kann mir da jemand helfen. Zum Darstellen anbei der Code.
Achso und hat jemand schon mal versucht ein im Canvas erstelltes Bild auf einen Drucker umzuleiten

Code: Alles auswählen
import tkinter as tk
class Test:
def __init__(self):
self.master = tk.Tk()
self.master.bind("<Motion>", self.positions)
#Mauspositions
self.pos_x = 50
self.pos_y = 0
self.image =tk.PhotoImage(file='open.gif') # irgendein 16x16 *.ico
self.image1=tk.PhotoImage(file='druck.gif')
self.b = tk.Button(self.master,image=self.image ,relief="flat",bg="#E0DFE3", command=self.doit)
self.b1 = tk.Button(self.master,image=self.image1,relief="flat",bg="#E0DFE3", command=self.doit)
self.b.place (x=2 , y=2, width=22, height=22)
self.b1.place(x=24, y=2, width=22, height=22)
def positions(self,event):
self.pos_x = event.x
self.pos_y = event.y
print (self.pos_x, self.pos_y)
if self.pos_x and self.pos_y in range (0,23) : self.b ['bg']="#F6F6F1"
elif self.pos_x in range (23,46) and self.pos_y in range (0,23): self.b1['bg']="#F6F6F1"
else: self.b['bg']="#E0DFE3"
self.master.update()
def doit(self): print ("trallala")
test = Test()
test.master.mainloop()