ich arbeite gerade an einem Programm und der Code für die GUI wird langsam unübersichtlich, weshalb ich sie in mehrere Files aufteilen will. Um das Prinzip zuverstehen, habe ich probiert das ganze als Test in kleinem Maßstab auszuprobieren, was allerdings nicht funktioniert. Konkret habe ich vor ein Fenster mit mehreren Tabs zu erstellen. Dazu möchte ich die Frames in jeweils eigenen Files speichern.
Zunächst soll nur frame1 ausgegliedert werden:
Code: Alles auswählen
from tkinter import *
from tkinter import ttk
class make_frame(Frame):
def __init__(self, master, width, height):
super().__init__(master, width, height)
Code: Alles auswählen
from tkinter import *
from tkinter import ttk
from graphs import *
# Create Window
root = Tk()
root.title('Test')
w, h =root.winfo_screenwidth(), root.winfo_screenheight()
root.geometry("%dx%d+0+0" % (w, h))
#Create Notebook
notebook = ttk.Notebook(root)
notebook.pack(pady=15)
#Create Frames
frame1 = make_frame(notebook, w, h)
frame1.pack()
frame2 = Frame(notebook, width=w, height=h, bg='blue')
frame2.pack()
notebook.add(frame1, text='Tracking')
notebook.add(frame2, text='Graphs')
root.mainloop()
Ich erhalte folende Fehlermeldung:
Traceback (most recent call last):
File "C:\Users\versp\STATISTICS\Tabs2\Main.py", line 17, in <module>
frame1 = make_frame(notebook, w, h)
File "C:\Users\versp\STATISTICS\Tabs2\graphs.py", line 13, in __init__
super().__init__(master, width, height)
TypeError: __init__() takes from 1 to 3 positional arguments but 4 were given
Ich verstehe nicht, warum angezeigt wird, dass ich 4 argumente angegeben habe, wo ich doch nur notebook, w und h für frame1 angegeben habe.
Hat jemand eine Idee wo der Fehler liegt?