How to use super() when subclassing Tkinter widgets? [duplicate]
While it is true that Tkinter
uses old-style classes, this limitation can be overcome by additionally deriving the subclass Application
from object
(using Python multiple inheritance):
import Tkinter as tkclass 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 so long as the Tkinter class doesn't attempt any behaviour which requires being an old-style class to work (which I highly doubt it would). I tested the example above with Python 2.7.7 without any issues.
This work around was suggested here. This behaviour is also included by default in Python 3 (referenced in link).