Entry
How can I create a "rollover" effect?
May 19th, 2000 02:37
unknown unknown, John Grayson
Here is a minimal example. Choose your own images...
from Tkinter import *
class ActiveButton(Button):
def __init__(self, master, inimage=None, outimage=None,
activate=None):
self.master = master
self.inI = PhotoImage(file='icons/%s' % inimage)
self.outI = PhotoImage(file='icons/%s' % outimage)
Button.__init__(self, master, command=activate, image=self.outI)
self.bind('<Any-Enter>', lambda e, state=1, s=self:
s.change(e, state))
self.bind('<Any-Leave>', lambda e, state=0, s=self:
s.change(e, state))
def change(self, event, state):
if state:
self.configure(image=self.inI)
else:
self.configure(image=self.outI)
if __name__ == '__main__':
root = Tk()
button = ActiveButton(root, inimage='smooth.gif',
outimage='tline1.gif',
activate=root.destroy)
button.pack()
root.mainloop()