# Like java SimpleButton2, but using OOP
import tkinter
# Make our own button class, subclass of standard one
class MyButton (tkinter.Button): #//*1 We subclass the standard button
# Args = label you want, button's parent widget or window
def __init__(self, label, parent): #//*1
# Call superclass' constructor as usual
tkinter.Button.__init__ (self, parent) #//*1
# Set our stuff
self["text"] = label #//*2 Set their ivars
self["command"] = self._myCallback #//*2
self._count = 0 #//*3 Create and set our ivar
self.pack()
# Our callback is a method, not a global function
def _myCallback (self): #//*4 Callback, uses ivar
self._count += 1 #//*4
print (self["text"] + " was pushed " + str(self._count) + " times") #//*4
# Create main frame
top = tkinter.Tk()
# Put 2 buttons in it, using our class
b1 = MyButton ("Push me", top)
b2 = MyButton ("Push me also", top)
# Start the main GUI loop
top.mainloop()