Python ist eine vielseitige Programmiersprache, mit der sich verschiedene Arten von Anwendungen implementieren lassen. Es verfügt über viele Arten von Modulen zum Erstellen von GUI-basierten (Graphical User Interface) Anwendungen. Python tkinter ist einer von ihnen. Jede Desktop-Anwendung kann mit dem tkinter-Modul einfach implementiert werden. Es ist besser, wenn Sie über Grundkenntnisse der Python-Programmierung verfügen, um die Verwendung des Python-tkinter-Moduls zu erlernen. In diesem Tutorial werden verschiedene Verwendungsmöglichkeiten des Python-tkinter-Moduls zum Erstellen der GUI-Anwendungen gezeigt.
Installieren Sie das Tkinter-Modul
Das tkinter-Modul ist standardmäßig nicht auf Python installiert. Sie müssen also den folgenden Befehl ausführen, um das tkinter-Modul in der Python 3+-Version zu installieren:
$ Sudo geeignet Installieren python3-tk
Verschiedene Tkinter-Widgets
Das tkinter-Modul enthält verschiedene Widgets für verschiedene Zwecke.
Widget Name | Zweck |
Etikett | Es wird verwendet, um dem Benutzer die Hilfemeldung anzuzeigen. |
Taste | Es wird verwendet, um der Anwendung verschiedene Schaltflächen hinzuzufügen. |
Rahmen | Es funktioniert wie ein Widget-Container, der verschiedene Arten von Widgets enthält, um ein organisiertes Formular zu entwerfen. |
Eintrag | Es wird verwendet, um vom Benutzer einen einzeiligen Text zu erhalten. |
Checkbutton | Es wird verwendet, um die Kontrollkästchenschaltflächen hinzuzufügen, um mehrere Eingaben des Benutzers aus mehreren Optionen entgegenzunehmen. |
Radio knopf | Es wird verwendet, um die Optionsfelder hinzuzufügen, um eine einzelne Eingabe des Benutzers aus mehreren Optionen zu übernehmen. |
Combobox-Schaltfläche | Es wird verwendet, um eine Dropdown-Liste hinzuzufügen, um eine einzelne Eingabe des Benutzers aus mehreren Optionen zu übernehmen. |
ListBox | Es wird verwendet, um ein Listenfeld hinzuzufügen, um mehrere Eingaben des Benutzers aus mehreren Optionen zu übernehmen. |
Text | Es wird verwendet, um vom Benutzer einen mehrzeiligen Text entgegenzunehmen. |
Nachricht | Es wird verwendet, um dem Benutzer das Nachrichtenfenster anzuzeigen. |
Scrollleiste | Es wird verwendet, um dem Fenster eine Bildlaufleiste hinzuzufügen, um das Fenster nach oben und unten zu scrollen. |
Menütaste | Es wird verwendet, um dem Benutzer das Menü anzuzeigen. |
Speisekarte | Es wird verwendet, um dem Benutzer die Menüpunkte anzuzeigen. |
PanedWindow | Es funktioniert wie ein Widget-Container, der die horizontalen und vertikalen Bereiche enthält. |
Tabs | Es wird verwendet, um der Anwendung ein Registerkartenfenster hinzuzufügen. |
Verschiedene Tkinter-Beispiele
Die Verwendung einiger gängiger Tkinter-Widgets wird in den folgenden Beispielen gezeigt.
Beispiel 1: Erstellen Sie eine einfache GUI-Anwendung
Erstellen Sie eine Python-Datei mit folgendem Inhalt, die in der Mitte des Bildschirms ein Dialogfeld mit einem Titel und der jeweiligen Höhe und Breite anzeigt:
#Notwendiges Modul importieren
aus dem Tkinter-Import *
#Objekt für das Fenster erstellen
tkobj = Tk ( )
#Legen Sie den Titel des Fensters fest
tkobj.title ( „Tkinter-Modul lernen“ )
#Stellen Sie die Höhe und Breite des Fensters ein
tkobj.geometry ( '300x150' )
#Stellen Sie die Anzeigeposition des Fensters zentral ein
tkobj.eval ( 'tk::PlaceWindow . Center' )
#Führen Sie den Tkinter aus
tkobj.mainloop ( )
Ausgabe:
Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Ein Dialogfeld mit dem Titel „Learn tkinter module“ wird angezeigt:
Beispiel 2: Verwendung von Label und Button
Erstellen Sie eine Python-Datei mit dem folgenden Skript, das ein Fenster mit einer Beschriftung und einem Dialogfeld anzeigt:
#Notwendiges Modul importierenaus dem Tkinter-Import *
#Erstellen Sie ein Objekt für das Fenster
tkobj = Tk ( )
#Legen Sie den Titel des Fensters fest
tkobj.title ( „Tkinter-Modul lernen“ )
#Stellen Sie die Höhe und Breite des Fensters ein
tkobj.geometry ( '400x150' )
#Labelobjekt definieren
lbl = Etikett ( tkobj, Text = „Es ist ein einfaches Fenster“ )
#Beschriftung zum Fenster hinzufügen
lbl.pack ( ipadx = 30 , iPads = zwanzig )
#Schaltflächenobjekt definieren
btn = Schaltfläche ( tkobj, Text = 'Klick mich' )
#Schaltfläche mit der Position zum Fenster hinzufügen
btn.pack ( ipadx = 30 , iPads = 10 )
#Stellen Sie die Anzeigeposition des Fensters zentral ein
tkobj.eval ( 'tk::PlaceWindow . Center' )
#Führen Sie den Tkinter aus
tkobj.mainloop ( )
Ausgabe:
Nach der Ausführung des Skripts erscheint in der Mitte des Bildschirms ein Fenster mit einer Beschriftung und einer Schaltfläche.
Beispiel 3: Legen Sie die Schriftfarbe und die Hintergrundfarbe fest
Erstellen Sie mit dem folgenden Skript eine Python-Datei, die ein Fenster mit einer Beschriftung und einer farbigen Schaltfläche anzeigt. Hier wird das Hintergrundattribut verwendet, um die Hintergrundfarbe der Schaltfläche festzulegen, und das Vordergrundattribut wird verwendet, um die Schriftfarbe der Schaltfläche festzulegen:
#Notwendiges Modul importierenaus dem Tkinter-Import *
#Erstellen Sie ein Objekt für das Fenster
tkobj = Tk ( )
#Legen Sie den Titel des Fensters fest
tkobj.title ( „Tkinter-Modul lernen“ )
#Stellen Sie die Höhe und Breite des Fensters ein
tkobj.geometry ( '400x150' )
#Labelobjekt definieren
lbl = Etikett ( tkobj, Text = „Hintergrund- und Vordergrundfarbe festlegen“ )
#Beschriftung zum Fenster hinzufügen
lbl.pack ( ipadx = 30 , iPads = zwanzig )
#Schaltflächenobjekt mit Hintergrund- und Vordergrundfarbe definieren
btn = Schaltfläche ( tkobj, Text = 'Klick mich' , Hintergrund = 'Blau' , Vordergrund = 'Rot' )
#Schaltfläche mit der Position zum Fenster hinzufügen
btn.pack ( ipadx = 30 , iPads = 8 )
#Stellen Sie die Anzeigeposition des Fensters zentral ein
tkobj.eval ( 'tk::PlaceWindow . Center' )
#Führen Sie den Tkinter aus
tkobj.mainloop ( )
Ausgabe:
Nach der Ausführung des Skripts erscheint folgendes Fenster:
Beispiel 4: Verwendung von Frame
Im folgenden Python-Skript werden eine Beschriftung und zwei Schaltflächen innerhalb eines Frame-Widgets angezeigt. Erstellen Sie eine Python-Datei mit dem Skript, um die Ausgabe zu überprüfen:
#Notwendiges Modul importierenaus dem Tkinter-Import *
#Erstellen Sie ein Objekt für das Fenster
tkobj = Tk ( )
#Legen Sie den Titel des Fensters fest
tkobj.title ( „tkinter-Modul“ )
#Stellen Sie die Höhe und Breite des Fensters ein
tkobj.geometry ( '250x100' )
#Rahmenobjekte definieren
frm = Rahmen ( tkobj )
ab Packung ( )
lframe = Rahmen ( tkobj )
lframe.pack ( Seite =LINKS )
rframe = Rahmen ( tkobj )
rframe.pack ( Seite =RECHT )
#Beschriftung innerhalb des Rahmens definieren
lbl = Etikett ( von, Text = „Verwendung des Rahmens“ , fg = 'Blau' )
lbl.pack ( )
#Definieren Sie Schaltflächen innerhalb des Rahmens
btn1 = Schaltfläche ( lframe, Text = „“ , fg = 'Schwarz' , bg = 'Weiß' )
btn2.pack ( Seite =RECHT )
#Stellen Sie die Anzeigeposition des Fensters zentral ein
tkobj.eval ( 'tk::PlaceWindow . Center' )
#Führen Sie den Tkinter aus
tkobj.mainloop ( )
Ausgabe:
Nach der Ausführung des Skripts erscheint folgende Ausgabe:
Beispiel 5: Behandeln Sie das Schaltflächenereignis
Die Verwendung des Meldungsfelds wird im folgenden Skript gezeigt. Das Meldungsfeld wird angezeigt, wenn auf eine Schaltfläche geklickt wird:
#Notwendige Module importierenaus dem Tkinter-Import *
aus der Tkinter-Import-Nachrichtenbox
#Erstellen Sie ein Objekt für das Fenster
tkobj = Tk ( )
#Legen Sie den Titel des Fensters fest
tkobj.title ( „Tkinter-Modul lernen“ )
#Stellen Sie die Höhe und Breite des Fensters ein
tkobj.geometry ( '400x150' )
#Definieren Sie eine Funktion zum Anzeigen eines Meldungsfelds
def-Anzeige ( ) :
messagebox.showinfo ( 'Information' , „Schaltfläche wurde angeklickt.“ )
#Erstellen Sie Etikettentext mit Schriftfarbe, -stil und -position
Etikett ( tkobj, Text = „Desktop-Anwendung mit tkinter.“ , fg = 'Grün' ) .Pack ( Paddy = 25 )
#Erstellen Sie eine Schaltfläche mit einem Schaltflächenhandler
Taste ( tkobj, Text = 'Zeige Nachricht' , Befehl =Anzeige ) .Pack ( )
#Stellen Sie die Anzeigeposition des Fensters zentral ein
tkobj.eval ( 'tk::PlaceWindow . Center' )
#Führen Sie den Tkinter aus
tkobj.mainloop ( )
Ausgabe:
Nach der Ausführung des Skripts erscheint folgendes Fenster:
Nach dem Drücken der Taste erscheint folgendes Meldungsfeld:
Beispiel 6: Nehmen Sie eine Eingabe vom Benutzer entgegen
Im tkinter-Modul stehen mehrere Widgets zur Verfügung, um Eingaben des Benutzers entgegenzunehmen. Die Verwendungsmöglichkeiten der gängigsten Widgets werden im folgenden Skript dargestellt. Erstellen Sie eine Python-Datei mit dem folgenden Code, um die Ausgabe zu überprüfen:
#Notwendige Module importierenaus dem Tkinter-Import *
aus tkinter.ttk Combobox importieren
von tkinter import ttk
tkinter importieren als Tk
aus der Tkinter-Import-Nachrichtenbox
#Tkinter-Objekt erstellen
tkobj = Tk ( )
#Legen Sie den Titel des Fensters fest
tkobj.title ( „Benutzerinformationsformular“ )
#Stellen Sie die Höhe und Breite des Fensters ein
tkobj.geometry ( '550x320' )
#Definieren Sie eine Funktion zum Anzeigen der Formularwerte
def display_values ( ) :
#Einzeiligen Text lesen
Name = 'Name : ' + name_val.get ( ) + ' \N '
#Lesen Sie den ausgewählten Optionsfeldwert
Wenn Geschlecht.get ( ) == 1 :
g = 'Männlich'
anders:
g = 'Weiblich'
g = 'Geschlecht : ' + g + ' \N '
#Lesen Sie die ausgewählten Kontrollkästchenwerte
Spiel = „“
Wenn g1.get ( ) == 1 :
Spiel = 'Kricket'
Wenn g2.get ( ) == 1 :
Wenn Spiel ! = „“ :
Spiel += ',' + 'Fußball'
anders:
Spiel = 'Fußball'
Wenn g3.get ( ) == 1 :
Wenn Spiel ! = „“ :
Spiel += ',' + 'Basketball'
anders:
Spiel = 'Basketball'
Spiel = 'Spiel : ' + Spiel + ' \N '
#Lesen Sie die Combobox-Werte
Land = 'Land : ' + CountryVal.get ( ) + ' \N '
#Lesen Sie den mehrzeiligen Text
Adresse = 'Adresse : ' + Adr.get ( „1,0“ , 'Ende' ) + ' \N '
#Alle von den Feldern übernommenen Werte zusammenführen
form_values = Name + g + Spiel + Land + Adresse
#Zeigen Sie die Werte im Meldungsfeld an
messagebox.showinfo ( „Benutzerinformationsdetails“ , form_values )
#Erstellen Sie eine Beschriftung und das Namensfeld
Etikett ( tkobj, Text = 'Name : ' ) .Ort ( X = 100 , Und = zwanzig )
name_val = StringVar ( )
ttk.Eintrag ( tkobj, Textvariable =Name_Wert ) .Pack ( Padx = 220 , Paddy = zwanzig )
#Erstellen Sie eine Beschriftung und das Optionsfeld
Etikett ( tkobj, Text = 'Geschlecht : ' ) .Ort ( X = 100 , Und = 60 )
Geschlecht = IntVar ( )
Geschlecht.set ( 1 )
Radio knopf ( tkobj, Text = 'Männlich' , Variable =Geschlecht, Wert = 1 ) .Ort ( X = 210 , Und = 60 )
Radio knopf ( tkobj, Text = 'Weiblich' , Variable =Geschlecht, Wert = 2 ) .Ort ( X = 290 , Und = 60 )
#Erstellen Sie eine Beschriftung und eine Kontrollkästchenschaltfläche
Etikett ( tkobj, Text = 'Lieblingsspiel : ' ) .Ort ( X = 100 , Und = 100 )
g1 = IntVar ( )
g2 = IntVar ( )
g3 = IntVar ( )
Checkbutton ( tkobj, Text = 'Kricket' , Variable =g1 ) .Ort ( X = 210 , Und = 100 )
Checkbutton ( tkobj, Text = 'Fußball' , Variable =g2 ) .Ort ( X = 290 , Und = 100 )
Checkbutton ( tkobj, Text = 'Basketball' , Variable =g3 ) .Ort ( X = 380 , Und = 100 )
#Tupelwerte definieren
Daten = ( 'Bangladesch' , 'Japan' , 'USA' )
#Label und Combobox erstellen
Etikett ( tkobj, Text = 'Land : ' ) .Ort ( X = 100 , Und = 140 )
CountryVal = StringVar ( )
Kombinationsfeld ( tkobj, Werte =Daten, Textvariable =countryVal ) .Ort ( X = 220 , Und = 140 )
#Beschriftung und Textfeld erstellen
Etikett ( tkobj, Text = 'Adresse : ' ) .Ort ( X = 100 , Und = 180 )
addr = ( tk.Text ( tkobj, Höhe = 3 , Breite = zwanzig ) )
Adr.Ort ( X = 220 , Und = 180 )
#Erstellen Sie eine Schaltfläche mit einem Schaltflächenhandler
Taste ( tkobj, Text = 'Einreichen' , Befehl =Anzeigewerte ) .Ort ( X = 250 , Und = 250 )
#Führen Sie den Tkinter aus
tkobj.mainloop ( )
Ausgabe:
Nach der Ausführung des Skripts erscheint folgendes Fenster:
Füllen Sie die Felder des Formulars aus und klicken Sie auf die Schaltfläche „Senden“.
Das folgende Meldungsfeld mit den übermittelten Werten wird angezeigt:
Abschluss
Die Methoden zur Verwendung des Python-tkinter-Moduls zum Erstellen der GUI-Anwendungen werden in diesem Tutorial anhand mehrerer Beispiele gezeigt.