2016-04-10 34 views
0

Verwenden eines OOP-Ansatzes zum erstmaligen Entwickeln eines tkinter-Programms basierend auf der senddex tkinter-Reihe. Ich habe ehrlich gesagt keine Ahnung, was der Fehler hier bedeutet.TypeError: muss str sein oder None, nicht Frame

Der Fehler leitet mich an:

File "C:\Users\Ash\Dropbox\Programming\Python\WorldManager PY\WorldManager.py", line 59, in __init__ 
tk.Tk.__init__(self, *args, **kwargs) 
File "C:\Python34\lib\tkinter\__init__.py", line 1867, in __init__ 
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) 
TypeError: must be str or None, not Frame 

Der Code, den ich verwendet habe, ist here

EDIT: Während der Code sagt die Linie 59 ist, ist der Fehler in Zeile 46. Ich nahm aus ein paar Kommentare von oben über den Code, als ich es eingefügt habe.

+2

Bitte setzen Sie den Code in der Frage selbst aufrufen werden, wenn notwendig, eine [MCVE Komponieren ] Zuerst, um es kurz genug zu machen. – Kevin

+1

Dieser Fehler stammt nicht von dem Code, mit dem Sie verknüpft sind. Zeile 59 ruft nicht 'tk.Tk .__ init __ (...)' –

+1

auf Fügen Sie 'print (args, kwargs)' vor dem Aufruf 'Tk .__ init__' hinzu, damit Sie sehen können, was gerade übergeben wird, insbesondere wie ein Frame wird übergeben. –

Antwort

2

Das Problem ist hier:

class frmWelcome(tk.Frame): 
    def __init__(self, *args, **kwargs): 
     #initialise tkinter 
     tk.Tk.__init__(self, *args, **kwargs) 

Sie von tk.Frame vererben sind noch Sie tk.Tk.__init__ Sie rufen müssen tk.Frame.__init__

+0

nach der Änderung dort im Code, bekomme ich einen anderen Fehler. tkinter.TclError: unbekannte Option "-screen" –

Verwandte Themen