Tkinter

Aus SibiWiki
Zur Navigation springen Zur Suche springen


Tkinter ist eine Grafikbibliothek für Python.

Beispielcode

Der folgende Beispiel-Quelltext zeigt, wie man mit Tkinter arbeiten kann.

Die Methoden linie, kreis, punkt, rechteck sind Hilfsmethoden, um den Aufruf zu erleichtern.


from tkinter import Canvas, Tk, mainloop

def linie(canvas, x1, y1, x2, y2, color):
   linie_id = canvas.create_line(x1,y1,x2,y2,fill=color)
   return linie_id

def punkt(canvas, x, y, color):
   punkt_id = linie(canvas, x, y, x+1, y, color)
   return punkt_id

def kreis(canvas,x,y, r, color):
   kreis_id = canvas.create_oval(x-r,y-r,x+r,y+r, fill=color)
   return kreis_id
 
def rechteck(canvas, x1, y1, x2, y2, color):
   rechteck_id = canvas.create_rectangle(x1,y1,x2,y2,fill=color)
   return rechteck_id

# Callback-Methode:
# Wird ausgefuehrt, wenn der Button geklickt wird.
def buttonGeklickt(event):
   print("Button geklickt!")
   leinwand.delete(kreisId)
   for i in punkteIds:
       leinwand.move(i, 0, -50)
 
# *** Hauptprogramm ***

# Groesse der Leinwand festlegen
leinwand_breite = 200
leinwand_hoehe = 200

# Vorbereitung der Grafik
master = Tk()

leinwand = Canvas(master,
          width=leinwand_breite,
          height=leinwand_hoehe)
leinwand.pack()
# festlegen, was passiert, wenn der Button geklickt wird.
leinwand.bind("<Button-1>", buttonGeklickt)

# Linie zeichnen

linieId = linie(leinwand, 20, 100, 180, 100, "blue")

# Punkte zeichnen
punkteIds = []
for x in range(1,19):
   punktId = punkt(leinwand, x*10, 110, "black")
   punkteIds.append(punktId)

# Rechteck zeichnen
rechteckId = rechteck(leinwand, 30,170,80,190, "green")

# Kreis zeichnen
kreisId = kreis(leinwand, 30,60, 20, "red")


# Beenden des Programms verhindern
mainloop()