Tkinter ist ein Python-Paket zum Erstellen von GUI-Anwendungen. Python hat viele GUI-Frameworks, aber Tkinter ist das einzige Framework, das in die Python-Standardbibliothek integriert ist. Tkinter hat mehrere Stärken; Es ist plattformübergreifend, sodass der gleiche Code unter Windows, MacOS und Linux funktioniert. Tkinter ist leicht und im Vergleich zu anderen Frameworks relativ schmerzfrei zu bedienen. Dies macht es zu einer überzeugenden Wahl für die Erstellung von GUI-Anwendungen in Python, insbesondere für Anwendungen, bei denen ein moderner Glanz nicht erforderlich ist. Die oberste Priorität besteht darin, schnell etwas zu erstellen, das funktional und plattformübergreifend ist.  

Um Tkinter besser zu verstehen, erstellen wir eine einfache GUI. 

Einstieg

1. Importieren Sie das tkinter-Paket und alle seine Module.
2. Erstellen Sie ein Stammfenster. Geben Sie dem Stammfenster einen Titel (mithilfe von title() ) und eine Bemaßung (mithilfe vonometry() ). Alle anderen Widgets befinden sich im Stammfenster. 
3. Rufen Sie mit mainloop() die Endlosschleife des Fensters auf. Wenn Sie vergessen, dies aufzurufen, wird dem Benutzer nichts angezeigt. Das Fenster wartet auf Benutzerinteraktionen, bis wir es schließen.

Beispiel:

from tkinter import *
 
root = Tk()
 
root.title("Welcome to GeekForGeeks")
root.geometry('350x200')
 
root.mainloop()

 
 

 

 

Ausgabe: 

 

Root-Fenster

 

 4. Wir fügen mithilfe der Etikettenklasse ein Etikett hinzu und ändern die Textkonfiguration nach Bedarf. Die Funktion grid() ist ein Geometriemanager, der die Beschriftung an der gewünschten Stelle im Fenster hält. Wenn standardmäßig keine Parameter angegeben sind, wird diese in die leere Zelle eingefügt. das ist 0,0, da dies der erste Ort ist. 
 

 



Beispiel:

 

from tkinter import *
 
root = Tk()
 
root.title("Welcome to GeekForGeeks")
root.geometry('350x200')
 
lbl = Label(root, text = "Are you a Geek?")
lbl.grid()
 
root.mainloop()

 
 

Ausgabe: 

 

Beschriftung im Stammfenster

 

5.  Fügen Sie nun dem Stammfenster eine Schaltfläche hinzu. Das Ändern der Tastenkonfigurationen bietet uns viele Optionen. In diesem Beispiel wird die Schaltfläche nach dem Klicken einen Text anzeigen und die Farbe des Textes innerhalb der Schaltfläche ändern. 

 

Beispiel:



 

from tkinter import *
 
root = Tk()
 
root.title("Welcome to GeekForGeeks")
root.geometry('350x200')
 
lbl = Label(root, text = "Are you a Geek?")
lbl.grid()
 
def clicked():
    lbl.configure(text = "I just got clicked")
 
btn = Button(root, text = "Click me" ,
             fg = "red", command=clicked)
btn.grid(column=1, row=0)
 
root.mainloop()

 
 

 

 

Ausgabe:  

 

Button hinzugefügt

Nach dem Klicken auf "Click me"

 

6. Mit der Entry() -Klasse erstellen wir ein Textfeld für Benutzereingaben. Um den Benutzereingabetext anzuzeigen, nehmen wir Änderungen an der angeklickten Funktion () vor . Wir können den vom Benutzer eingegebenen Text mit der Funktion get() abrufen. Bei der Schaltfläche nach Eingabe des Textes wird ein Standardtext mit dem Benutzertext verkettet. Ändern Sie auch die Position des Schaltflächenrasters in Spalte 2, da Eintrag() Spalte 1 ist.



 

Beispiel:

 

from tkinter import *
 
root = Tk()
 
root.title("Welcome to GeekForGeeks")
root.geometry('350x200')
 
lbl = Label(root, text = "Are you a Geek?")
lbl.grid()
 
txt = Entry(root, width=10)
txt.grid(column =1, row =0)
 
 
def clicked():
 
    res = "You wrote" + txt.get()
    lbl.configure(text = res)
 
btn = Button(root, text = "Click me" ,
             fg = "red", command=clicked)
btn.grid(column=2, row=0)
 
root.mainloop()

 
 

 

 

Ausgabe: 

 

Eintrag Widget in Spalte 2 Zeile 0

Benutzereingabetext anzeigen. 



 

7. Um eine Menüleiste hinzuzufügen, können Sie die Menüklasse verwenden . Zuerst erstellen wir ein Menü, dann fügen wir unser erstes Etikett hinzu und schließlich weisen wir das Menü unserem Fenster zu. Mit add_cascade() können wir unter jedem Menü Menüelemente hinzufügen .

 

Beispiel:

 

 

 

from tkinter import *
 
root = Tk()
 
root.title("Welcome to GeekForGeeks")
root.geometry('350x200')
 
menu = Menu(root)
item = Menu(menu)
item.add_command(label='New')
menu.add_cascade(label='File', menu=item)
root.config(menu=menu)
 
lbl = Label(root, text = "Are you a Geek?")
lbl.grid()
 
txt = Entry(root, width=10)
txt.grid(column =1, row =0)
 
 
def clicked():
 
    res = "You wrote" + txt.get()
    lbl.configure(text = res)
 
btn = Button(root, text = "Click me" ,
             fg = "red", command=clicked)
btn.grid(column=2, row=0)
 
root.mainloop()

 
 

Ausgabe : 



 

Menüleiste

 

Diese einfache Benutzeroberfläche behandelt die Grundlagen des Tkinter-Pakets. Ebenso können Sie weitere Widgets hinzufügen und deren Konfiguration nach Bedarf ändern. 

 

Widgets

 

Tkint er bietet verschiedene Steuerelemente wie Schaltflächen, Beschriftungen und Textfelder, die in einer GUI-Anwendung verwendet werden. Diese Steuerelemente werden üblicherweise als Widgets bezeichnet.  Die Liste der häufig verwendeten Widgets ist unten aufgeführt -

 

S Nr . Widget Beschreibung
1 Etikette Das Label-Widget wird verwendet, um eine einzeilige Beschriftung für andere Widgets bereitzustellen. Es kann auch Bilder enthalten.
2 Taste Das Schaltflächen-Widget wird verwendet, um Schaltflächen in Ihrer Anwendung anzuzeigen.
3 Eintrag Das Eingabe-Widget wird verwendet, um ein einzeiliges Textfeld zum Akzeptieren von Werten von einem Benutzer anzuzeigen.
4 Speisekarte Das Menü-Widget wird verwendet, um einem Benutzer verschiedene Befehle bereitzustellen. Diese Befehle sind in Menubutton enthalten.
5 Segeltuch Das Canvas-Widget wird zum Zeichnen von Formen wie Linien, Ovalen, Polygonen und Rechtecken in Ihrer Anwendung verwendet.
6 Checkbutton Das Checkbutton-Widget wird verwendet, um eine Reihe von Optionen als Kontrollkästchen anzuzeigen. Der Benutzer kann mehrere Optionen gleichzeitig auswählen.
7 Rahmen Das Frame-Widget wird als Container-Widget verwendet, um andere Widgets zu organisieren.
8 Listbox Das Listbox-Widget wird verwendet, um einem Benutzer eine Liste mit Optionen bereitzustellen.
9 Menütaste Das Menubutton-Widget wird verwendet, um Menüs in Ihrer Anwendung anzuzeigen.
10 Botschaft Das Nachrichten-Widget wird verwendet, um mehrzeilige Textfelder zum Akzeptieren von Werten von einem Benutzer anzuzeigen.
11 Radio knopf Das Radiobutton-Widget wird verwendet, um eine Reihe von Optionen als Optionsfelder anzuzeigen. Der Benutzer kann jeweils nur eine Option auswählen.
12 Rahmen Das Skalierungs-Widget wird verwendet, um ein Schieberegler-Widget bereitzustellen.
13 Scrollleiste Das Bildlaufleisten-Widget wird verwendet, um verschiedenen Widgets, z. B. Listenfeldern, Bildlauffunktionen hinzuzufügen.
14 Text Das Text-Widget wird verwendet, um Text in mehreren Zeilen anzuzeigen.
15 Höchststufe Das Toplevel-Widget wird verwendet, um einen separaten Fenstercontainer bereitzustellen.
16 LabelFrame Ein Labelframe ist ein einfaches Container-Widget. Sein Hauptzweck ist es, als Abstandshalter oder Container für komplexe Fensterlayouts zu fungieren.
17 tkMessageBox Dieses Modul wird verwendet, um Meldungsfelder in Ihren Anwendungen anzuzeigen.
18 Spinbox Das Spinbox-Widget ist eine Variante des Standard-Tkinter-Eintrags-Widgets, mit dem aus einer festen Anzahl von Werten ausgewählt werden kann.
19 PanedWindow Ein PanedWindow ist ein Container-Widget, das eine beliebige Anzahl von horizontal oder vertikal angeordneten Fenstern enthalten kann.

Geometriemanagement

 

Alle Tkinter-Widgets haben Zugriff auf bestimmte Methoden zur Geometrieverwaltung, mit denen Widgets im gesamten übergeordneten Widget-Bereich organisiert werden. Tkinter macht die folgenden Geometrie-Manager-Klassen verfügbar: Packen, Gitter und Ort. Ihre Beschreibung wird unten erwähnt -

 

S Nr. Widegt Beschreibung
1 Pack() Dieser Geometrie-Manager organisiert Widgets in Blöcken, bevor sie im übergeordneten Widget platziert werden.
2 Gitter() Dieser Geometrie-Manager organisiert Widgets in einer tabellenartigen Struktur im übergeordneten Widget.
3 Platz() Dieser Geometrie-Manager organisiert Widgets, indem er sie an einer bestimmten Position im übergeordneten Widget platziert.