Python-GUI-Programmierung (Tkinter)
Python bietet mehrere Bibliotheken für die Entwicklung grafischer Oberflächen. Einige häufig verwendete Python-GUI-Bibliotheken sind wie folgt:
Tkinter:Das Tkinter-Modul (Tk-Schnittstelle) ist die Schnittstelle zum standardmäßigen Tk-GUI-Toolkit von Python. Tk und Tkinter können auf den meisten Unix-Plattformen verwendet werden und lassen sich auch in Windows- und Macintosh-Systemen einsetzen. Spätere Versionen von Tk8.0 können native Fensterstile implementieren und laufen auf der überwiegenden Mehrheit der Plattformen gut.
wxPython:wxPython ist eine Open-Source-Software und eine hervorragende GUI-Grafikbibliothek für die Python-Sprache, mit der Python-Programmierer einfach vollständige, voll funktionsfähige GUI-Benutzeroberflächen erstellen können.
Jython:Jython-Programme können nahtlos in Java integriert werden. Mit Ausnahme einiger Standardmodule verwendet Jython Java-Module. Jython verfügt über fast alle Module des Standard-Python, die nicht von der Sprache C abhängen. Beispielsweise verwendet die Benutzeroberfläche von Jython Swing, AWT oder SWT. Jython kann dynamisch oder statisch in Java-Bytecode kompiliert werden.
Tkinter-Programmierung
Tkinter ist die Standard-GUI-Bibliothek für Python. Python kann Tkinter verwenden, um schnell GUI-Anwendungen zu erstellen.
Da Tkinter in das Python-Installationspaket integriert ist, können Sie die Tkinter-Bibliothek importieren, solange Python installiert ist. Darüber hinaus ist IDLE ebenfalls in Tkinter geschrieben, und Tkinter kann einfache grafische Oberflächen weiterhin problemlos verarbeiten.
Hinweis: Der in der Python3.x-Version verwendete Bibliotheksname ist tkinter, das heißt, der erste Buchstabe T ist kleingeschrieben.
import tkinter
Ein GUI-Programm erstellen
- 1. Das Tkinter-Modul importieren
- 2. Widget erstellen
- 3. Geben Sie den Master dieses Widgets an, d. h., zu welchem dieses Widget gehört
- 4. Teilen Sie dem GM (Geometry Manager) mit, dass ein Widget erstellt wurde
Beispiel (Python3.x)
Beispiel (Python2.x)
Das Ausführungsergebnis des obigen Codes ist in der folgenden Abbildung dargestellt:
Beispiel
Das Ausführungsergebnis des obigen Codes ist in der folgenden Abbildung dargestellt:
Tkinter-Widgets
Tkinter bietet verschiedene Steuerelemente wie Schaltflächen, Beschriftungen und Textfelder, die in einer GUI-Anwendung verwendet werden. Diese Steuerelemente werden oft Widgets oder Komponenten genannt.
Derzeit gibt es 15 Tkinter-Widgets. In der folgenden Tabelle stellen wir diese Widgets und eine kurze Einführung vor:
| Widget | Beschreibung |
|---|---|
| Schaltfläche | Button-Widget; zeigt eine Schaltfläche im Programm an. |
| Canvas | Canvas-Widget; zeigt grafische Elemente wie Linien oder Text an |
| Checkbutton | Checkbutton-Widget; wird verwendet, um Mehrfachauswahlfelder in einem Programm bereitzustellen |
| Entry | Entry-Widget; wird verwendet, um einfachen Textinhalt anzuzeigen |
| Frame | Frame-Widget; zeigt einen rechteckigen Bereich auf dem Bildschirm an, wird meist als Container verwendet |
| Label | Label-Widget; kann Text und Bitmaps anzeigen |
| Listbox | Listbox-Widget; das Listbox-Fenster-Widget wird verwendet, um dem Benutzer eine Liste von Zeichenfolgen anzuzeigen |
| Menüschaltfläche | Menubutton-Widget; wird verwendet, um Menüelemente anzuzeigen |
| Menü | Menu-Widget; zeigt Menüleiste, Dropdown-Menüs und Pop-up-Menüs an |
| Nachricht | Message-Widget; wird verwendet, um mehrzeiligen Text anzuzeigen, ähnlich wie Label |
| Radiobutton | Radiobutton-Widget; zeigt den Zustand einer Einzelauswahl-Schaltfläche an |
| Skalierung | Scale-Widget; zeigt eine numerische Skala an und stellt ein numerisches Intervall mit begrenztem Bereich für die Ausgabe bereit |
| Scrollbar | Scrollbar-Widget; wird verwendet, wenn der Inhalt den sichtbaren Bereich überschreitet, z. B. bei einer Listbox. |
| Text | Text-Widget; wird verwendet, um mehrzeiligen Text anzuzeigen |
| Toplevel | Toplevel-Widget; wird verwendet, um einen separaten Dialog bereitzustellen, ähnlich wie Frame |
| Spinbox | Spinbox-Widget; ähnlich wie Entry, kann aber einen Bereich von Eingabewerten angeben |
| PanedWindow | PanedWindow ist ein Plugin zur Fensterlayoutverwaltung, das ein oder mehrere untergeordnete Widgets enthalten kann. |
| LabelFrame | labelframe ist ein einfaches Container-Widget. Wird oft für komplexe Fensterlayouts verwendet. |
| tkMessageBox | Wird verwendet, um ein Meldungsfeld für Ihre Anwendung anzuzeigen. |
Standardattribute
Standardattribute sind die gemeinsamen Attribute aller Widgets wie Größe, Schriftart und Farbe usw.
| Attribute | Beschreibung |
| Dimension | Widget-Größe; |
| Farbe | Widget-Farbe; |
| Font | Widget-Schriftart; |
| Anker | Anker; |
| Relief | Widget-Stil; |
| Bitmap | Bitmap; |
| Cursor | Cursor; |
Geometrieverwaltung
Tkinter-Widgets verfügen über spezielle Methoden zur Verwaltung des Geometriezustands, die die Organisation des gesamten Widget-Bereichs regeln. Die folgenden von Tkinter bereitgestellten Klassen zur Geometrieverwaltung sind: pack, grid, place
| Geometriemethode | Beschreibung |
| pack() | Pack; |
| grid() | Grid; |
| place() | Place; |