Although it is true that Tkinter uses old-style classes, this limitation can be overcome by further deriving the Application subclass from object (using Python multiple inheritance):
import Tkinter as tk class Application(tk.Frame, object): def __init__(self, master): super(Application, self).__init__(master) self.grid() def main(): root = tk.Tk() root.geometry('200x150') app = Application(root) root.mainloop() main()
This will work until the Tkinter class tries to execute any behavior that requires the use of the old-style class (which I highly doubt it). I tested the above example with Python 2.7.7 without any problems.
This work has been proposed here . This behavior is also enabled by default in Python 3 (link in link).
source share