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)

#!/usr/bin/python3 import tkinter top = tkinter.Tk() # Nachrichtenschleife betreten top.mainloop()

Beispiel (Python2.x)

#!/usr/bin/python # -*- coding: UTF-8 -*- import Tkinter top = Tkinter.Tk() # Nachrichtenschleife betreten top.mainloop()

Das Ausführungsergebnis des obigen Codes ist in der folgenden Abbildung dargestellt:

tkwindow

Beispiel

#!/usr/bin/python # -*- coding: UTF-8 -*- # Python2.x-Importmethode from Tkinter import * # Tkinter-Bibliothek importieren # Python3.x-Importmethode #from tkinter import * root = Tk() # Hintergrundfarbe des Fensterobjekts erstellen # Zwei Listen erstellen li = ['C','python','php','html','SQL','java'] movie = ['CSS','jQuery','Bootstrap'] listb = Listbox(root) # Zwei Listbox-Widgets erstellen listb2 = Listbox(root) for item in li: # Daten in das erste Widget einfügen listb.insert(0,item) for item in movie: # Daten in das zweite Widget einfügen listb2.insert(0,item) listb.pack() # Die Widgets in das Hauptfenster platzieren listb2.pack() root.mainloop() # Die Nachrichtenschleife betreten

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:

WidgetBeschreibung
SchaltflächeButton-Widget; zeigt eine Schaltfläche im Programm an.
CanvasCanvas-Widget; zeigt grafische Elemente wie Linien oder Text an
CheckbuttonCheckbutton-Widget; wird verwendet, um Mehrfachauswahlfelder in einem Programm bereitzustellen
EntryEntry-Widget; wird verwendet, um einfachen Textinhalt anzuzeigen
FrameFrame-Widget; zeigt einen rechteckigen Bereich auf dem Bildschirm an, wird meist als Container verwendet
LabelLabel-Widget; kann Text und Bitmaps anzeigen
ListboxListbox-Widget; das Listbox-Fenster-Widget wird verwendet, um dem Benutzer eine Liste von Zeichenfolgen anzuzeigen
MenüschaltflächeMenubutton-Widget; wird verwendet, um Menüelemente anzuzeigen
MenüMenu-Widget; zeigt Menüleiste, Dropdown-Menüs und Pop-up-Menüs an
NachrichtMessage-Widget; wird verwendet, um mehrzeiligen Text anzuzeigen, ähnlich wie Label
RadiobuttonRadiobutton-Widget; zeigt den Zustand einer Einzelauswahl-Schaltfläche an
SkalierungScale-Widget; zeigt eine numerische Skala an und stellt ein numerisches Intervall mit begrenztem Bereich für die Ausgabe bereit
ScrollbarScrollbar-Widget; wird verwendet, wenn der Inhalt den sichtbaren Bereich überschreitet, z. B. bei einer Listbox.
TextText-Widget; wird verwendet, um mehrzeiligen Text anzuzeigen
ToplevelToplevel-Widget; wird verwendet, um einen separaten Dialog bereitzustellen, ähnlich wie Frame
SpinboxSpinbox-Widget; ähnlich wie Entry, kann aber einen Bereich von Eingabewerten angeben
PanedWindowPanedWindow ist ein Plugin zur Fensterlayoutverwaltung, das ein oder mehrere untergeordnete Widgets enthalten kann.
LabelFramelabelframe ist ein einfaches Container-Widget. Wird oft für komplexe Fensterlayouts verwendet.
tkMessageBoxWird 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;
Andere Erweiterungen