ich möchte mir gerne für tkinter eine Klasse erzeugen, mit der ich einen Schieberegler erstellen kann. Leider habe ich so meine Probleme mit der Vererbung von Elternklassen.
Meine Klasse heisst Balkenanzeige, und weil ich einige Elemente von tkinter brauche - z.B. die .pack-Methode, habe ich tkinter mit in die Klammern bei class ... (tkinter) eingefügt, weil ich so dachte, dass dann die Funktionen von tkinter mit vererbt werden und verfügbar sind.
Leider klappt das nicht - ich bekomme die Fehlermeldung für Zeile 5 - die Init-Prozedur meiner Klasse:
Ich weis grad gar nicht, was ich falsch mache. Ich möchte aus der Hauptfunktion heraus mir mittels der Klasse ein tkinter-Canvas-rectangle erzeugen. Kann mir vielleicht jemand von Euch einen Tipp geben, was ich bei der Vererbung falsch verstanden haben könnte?module.__init__() takes at most 2 arguments (3 given)
Code: Alles auswählen
import tkinter
from tkinter import Canvas as canvas
class Balkenanzeige (tkinter):
def __init__(self,
parent,
x_1=0, x_2=100,
y_1=0, y_2=50,
linewidth=3,
linecolor="black",
color_left="green",
color_right="blue",
fillstate=30):
self.parent = parent
self.x_1 = x_1
self.x_2 = x_2
self.y_1 = y_1
self.y_2 = y_2
self.linewidth = linewidth
self.linecolor = linecolor
self.color_left = color_left
self.color_right = color_right
self.fillstate = fillstate
def __del__(self):
pass
def zyli_show (self):
print("in show")
self.parent.Canvas.create_rectangle (self.x_1, self.y_1,
self.x_2, self.y_2,
fill = self.linecolor,
outline= self.linecolor)
def myfunc ():
master = tkinter.Tk()
my_zyli = Balkenanzeige(master)
my_zyli.zyli_show()
my_zyli.pack()
master.mainloop()
if __name__ == "__main__":
myfunc()