Hallo,
ich soll eine Flagge mit Python und tkinter machen, ich wollte gern die Chile Flagge machen. Die Grundlage habe ich, jetzt fehlt nur noch der Stern. Im Internet hab ich also versucht einen Code zu finden, dieser funktioniert jedoch nicht und folgende Fehlermeldung taucht auf:
%Run Flagge_Chile.py
Traceback (most recent call last):
File "F:\WI\01_Python OOP WI\01_Objekte und Klassen\L1_1_Aufgabe_Flagge_HA_Chile.py", line 141, in <module>
s.zeichnen()
File "F:\WI\01_Python OOP WI\01_Objekte und Klassen\L1_1_Aufgabe_Flagge_HA_Chile.py", line 83, in zeichnen
canvas.create_line(self.pos_x0, self.pos_y0, self.pos_x1, self.pos_y1, self.pos_x2, self.pos_y2, self.pos_x3, self.pos_y3, self.pos_x4, self.pos_y4, fill=self.farbe, outline=self.farbe)
File "F:\S20\Programme\Thonny_3.2.3\lib\tkinter\__init__.py", line 2492, in create_line
return self._create('line', args, kw)
File "F:\S20\Programme\Thonny_3.2.3\lib\tkinter\__init__.py", line 2480, in _create
*(args + self._options(cnf, kw))))
_tkinter.TclError: unknown option "-outline"
Das ist der Programmcode:
import tkinter as tk
class Rechteck:
# Initialisiert ein Rechteck Objekt mit Standardwerten
def __init__(self):
self.breite = 0
self.hoehe = 0
self.pos_x = 0
self.pos_y = 0
self.farbe = "black"
def __str__(self):
return "Dies ist die Klasse 'Rechteck'"
# Malt auf ein übergebenes "tk.Canvas" Objekt das Rechteck
def zeichnen(self):
x_ende = self.pos_x + self.breite
y_ende = self.pos_y + self.hoehe
canvas.create_rectangle(self.pos_x, self.pos_y, x_ende, y_ende, fill=self.farbe, outline=self.farbe)
class Kreis:
def __init__(self):
self.pos_x = 0
self.pos_y = 0
self.radius = 0
self.farbe = "black"
def __str__(self):
return "Dies ist die Klasse 'Kreis'"
# Malt auf ein übergebenes "tk.Canvas" Objekt den Kreis
def zeichnen(self):
# berechne Postion bis wohin gezeichnet werden muss, abhängig vom Radius
x_beginn = self.pos_x - self.radius
y_beginn = self.pos_y - self.radius
x_ende = self.pos_x + self.radius
y_ende = self.pos_y + self.radius
canvas.create_oval(x_beginn, y_beginn, x_ende, y_ende, fill=self.farbe, outline=self.farbe)
class Stern:
def __init__(self):
self.pos_x0 = 0
self.pos_y0 = 0
self.pos_x1 = 0
self.pos_y1 = 0
self.pos_x2 = 0
self.pos_y2 = 0
self.pos_x3 = 0
self.pos_y3 = 0
self.pos_x4 = 0
self.pos_y4 = 0
self.farbe = "black"
self.outline = "black"
def __str__(self):
return "Dies ist die Klasse 'Stern'"
def zeichnen(self):
canvas.create_line(self.pos_x0, self.pos_y0, self.pos_x1, self.pos_y1, self.pos_x2, self.pos_y2, self.pos_x3, self.pos_y3, self.pos_x4, self.pos_y4, fill=self.farbe, outline=self.farbe)
if __name__ == '__main__':
# GUI Klasse initialisieren
application = tk.Tk()
# Hinzufügen einer Zeichenfläche
canvas = tk.Canvas(application, width=600, height=400)
canvas.pack()
r = Rechteck()
r.pos_x = 30
r.pos_y = 30
r.breite = 200
r.hoehe = 200
r.farbe = "blue"
r.zeichnen()
r.pos_x = 230
r.pos_y = 30
r.breite = 390
r.hoehe = 200
r.farbe = "white"
r.zeichnen()
r.pos_x = 30
r.pos_y = 230
r.breite = 600
r.hoehe = 220
r.farbe = "red"
r.zeichnen()
s = Stern()
s.pos_x0 = 40
s.pos_y0 = 70
s.pos_x1 = 60
s.pos_y1 = 40
s.pos_x2 = 80
s.pos_y2 = 70
s.pos_x3 = 40
s.pos_y3 = 50
s.pos_x4 = 80
s.pos_y4 = 70
s.outline = "red"
s.zeichnen()
# Fokus auf die GUI legen und starten
tk.mainloop()
Weiß jemand wo der Fehler ist und könnte mir helfen?
Im Voraus schonmal Dankeschön.