A Tkinter image button toggling between two images

vegaseat 3 Tallied Votes 2K Views Share

A Tkinter image button that toggles between an up and down button image.

''' tk_button_image_toggle.py
using itertools.cycle() to create a Tkinter ToogleUpDownImageButton
tested with Python27  by  vegaseat  01aug2014
'''

import itertools as it
try:
    # Python27
    import Tkinter as tk
except ImportError:
    # Python3+
    import tkinter as tk


class ToogleUpDownImageButton(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)

        # images are of an up and down button
        # pick GIF images you have in the working directory or give full path
        self.image_up = tk.PhotoImage(file='btn_up.gif')
        self.image_down = tk.PhotoImage(file='btn_down.gif')
        self.images = it.cycle([self.image_down, self.image_up])		

        self.button = tk.Button(self, image=self.image_up, command=self.toggle)
        self.button.pack()

    def toggle(self):
        """
        toggle between up and down button images
        """
        self.button['image'] = next(self.images)


def main():
    app = ToogleUpDownImageButton()
    app.mainloop()

main()