TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases tkinter tkinter

TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases


I wanted to comment you but there are many things to say:

  • First of all, get rid of from tkinter import * and write import tkinter as tk instead (as Bryan has written it many times here). Besides this, what the purpose of coding from tkinter import * and import tkinter as tk within the same application? When you do that, all your widget classes must be precedented with tk (tk.Label(...), tk.Frame(...)...)

  • In class Number1(tk,Frame) you should write tk.Frame (or simply Frame if you keep your imports as they are)

  • You are using unecessarily super() in super(Number1, self).__init__(). Please read the answer of Bryan here: Best way to structure a tkinter application, and replace that line by this one: tk.Frame.__init__(self, master) (for the future, take in consideration Python's Super is nifty, but you can't use it)

  • Regarding this line: self.TopTitle = Label("Number1", font = ('Calibri ', 16)): the first option to pass to tk.Label() (and any other widgets you will create) is the parent widget: in your case, self.master

  • I find the 2 lines related to self.TopTitle useless and I do not understand what you are trying to achieve with them (besides, you should not name that label that way; please respect PEP 8 if you want to join the Python sect)