Python: Tkinter

Aus Flinkwiki
Wechseln zu: Navigation, Suche
Seitenübersicht
Zur Seite "Python"
Zur Seite "Python: Klassen"
Zur Seite "Python: Module"
Zur Seite "Python: Turtle"
Zur Seite "Python: pygame"



Allgemeines

Tkinter ist die Python-Schnittstelle zu Tk. Tkint ist ein Akronym für "Tk interface". Tk wurde ursprünglich als eine GUI-Erweiterung für Tcl entwickelt.


Import

Unter Python2 wird Tkinter großgeschrieben, unter Python3 kleingeschrieben: tkinter.

Python2: from Tkinter import *

Python3: from tkinter import *


Widgets

   button
   canvas
   checkbutton
   combobox
   entry
   frame
   label
   labelframe
   listbox
   menu
   menubutton
   message
   notebook
   tk_optionMenu
   panedwindow
   progressbar
   radiobutton
   scale
   scrollbar
   separator
   sizegrip
   spinbox
   text
   treeview

Fenster

   tk_chooseColor - lässt ein Pop-up-Fenster erscheinen, dass es dem Benutzer ermöglicht eine Farbe aus einer Palette auszuwählen.
   tk_chooseDirectory - Pop-up-Fenster, dass einem Benutzer erlaubt interaktiv ein Verzeichnis auszuwählen.
   tk_dialog - ein Pop-up-Fenster in Form eines Dialogfenster
   tk_getOpenFile - Pop-up-Fenster, dass einem Benutzer erlaubt interaktiv eine Datei zum Öffnen auszuwählen.
   tk_getSaveFile - Pop-up-Fenster, dass einem Benutzer erlaubt interaktiv eine Datei zum Schreiben auszuwählen.
   tk_messageBox - Pop-up-Fenster mit Message.
   tk_popup - Pop-up-Fenster.
   toplevel - erzeugt und verändert Widgets auf höchster Ebene.

Geometrie-Manager

   place
   grid
   pack

[1]


Farben

Es können die üblichen englischen Farbnamen ('red') verwendet werden. Um sicher zu sein, dass keine Fehler auftreten, ist es besser, die RGB-Bezeichnungen zu verwenden, entweder als Tupel ( (255,0,0) ) oder in hexadezimaler Schreibweise ('#ff0000')

Zur Farbauswahl kann man in das Skript den Colorchooser aufrufen:

from tkinter.colorchooser import askcolor
farbe = askcolor()

farbe[0] gibt den Code in Tupel-Schreibweise aus, farbe[1] den hexadezimalen Code.


Canvas

Grundgerüst:

from tkinter import *
tk = Tk()
c = Canvas(tk,width = 500, height = 500)
c.pack()
c.create_line(0,0,500,500)

Vergleich zu Turtle:

import turtle as t
t.setup(width = 500, height = 500)
t.up()
t.goto(-250,250)
t.down()
t.goto(250,-250)

Die Koordinaten werden von der linken oberen Ecke aus gedacht.

Funktionen:

  • create_line(x1,y1,x2,y2)
  • create_rectangle(x1,y1,x2,y2) # optional zum Ausfüllen: create_rectangle(x1,y1,x2,y2,fill = 'farbe'))
  • create_arc(x1,y1,x2,y2,extent = Winkelgrad, style = ARC) # z. B.: c.create_arc(10,10,200,80,extent = 359, style = ARC)
  • create_polygon(x1,y1,x2,y2,xn,yn,fill = farbe, outline = farbe) # z. B.: c.create_polygon(10,10,100,10,100,120, fill = "", outline = 'black')

Beispiele

Button

from tkinter import *
def hallowelt():
    print("Hallo Welt")

tk = Tk()
btn = Button(tk,text = "Hier klicken",command = hallowelt)
btn.pack()


Textbox

from tkinter import *

w1=Tk()
w1.geometry('100x100')
w1.config(bg='#f00')
w1.title('red windows')

w2=Tk()
w2.geometry('300x300')
w2.config(bg='grey')
w2.title('grey windows')

t1 = Label(w1, text='text in red window', fg='yellow', bg = 'grey')
t1.config(font = ('Times', 25))
t1.pack()

w1.mainloop()
w2.mainloop()

[2]


| |