Ich würde gerne Tkinter-Rechteckobjekte mittels for-Schleife erstellen und den Zähler der for-Schleife für die Benennung der Rechteckobjekte und außerdem als Multiplikator für die Position/Größe der Rechtecke verwenden. Mit Google komme ich da nicht weiter.
Mein aktueller Code sieht so aus:
Code: Alles auswählen
import tkinter as tk
x1 = 50
y1 = 0
x2 = 150
y2 = 50
class Application:
def __init__(self, app_win):
self.app_win = app_win
self.width = app_win.winfo_screenwidth()
self.height = app_win.winfo_screenheight()
self.center_x = self.width / 2
self.center_y = self.height / 2
self.window = tk.Canvas(app_win, width=self.width, height=self.height,
bg='black')
self.window.pack()
class Rectangle():
def __init__(self, app_win, x1, y1, x2, y2):
self.app_win = app_win
self.x1 = x1
self.y1 = y1
self.x2 = x2
self.y2 = y2
self.rectangle = self.window.create_rectangle(self.x1, self.y1, self.x2, self.y2, # Problem 1
fill='red')
self.window.pack()
def main():
app_win = tk.Tk()
app_win.attributes("-fullscreen", True)
app_win.bind("<Escape>", lambda e: app_win.quit())
app = Application(app_win)
rectangle_list = []
for i in range(0,5):
rectangle{i} = Rectangle(app_win, x1*i, y1, x2*i, y2*i) # Problem 2
rectangle_list.append(rectangle{i})
app_win.mainloop()
if __name__ == '__main__':
main()
- Das erste Problem ist, dass ich nicht in Erfahrung bringen konnte, wie ich der Klasse `Rectangle` den Canvas `window` des Objekts `app` übergeben kann.
- Das zweite Problem ist dann die Erzeugung der Rechteckobjekte mittels for-Schleife und deren Speicherung in einer Liste.
- Enthält mein Code noch weitere Probleme?
Atalanttore