Python bietet mehrere Optionen für die Entwicklung einer GUI (Graphical User Interface). Von allen GUI-Methoden ist tkinter die am häufigsten verwendete Methode. Es handelt sich um eine Standard-Python-Schnittstelle zum Tk-GUI-Toolkit, das mit Python geliefert wird. Python Tkinter ist der schnellste und einfachste Weg, GUI-Anwendungen zu erstellen. Das Erstellen einer GUI mit Tkinter ist eine einfache Aufgabe.
Inhaltsverzeichnis
- Erstellen Sie die erste Tkinter-GUI-Anwendung
- Tkinter-Widget
- Farb- und Schriftartenoption in Tkinter
- Geometriemanagement
Um eine Tkinter-Python-App zu erstellen, befolgen Sie diese grundlegenden Schritte:
- Importieren Sie das tkinter-Modul : Dies geschieht genau wie das Importieren jedes anderen Moduls in Python . Beachten Sie, dass das Modul in Python 2.x „Tkinter“ heißt, während es in Python 3.x „tkinter“ heißt.
- Erstellen Sie das Hauptfenster (Container) : Das Hauptfenster dient als Container für alle GUI-Elemente, die Sie später hinzufügen.
- Fügen Sie Widgets zum Hauptfenster hinzu : Sie können dem Hauptfenster beliebig viele Widgets wie Schaltflächen, Beschriftungen, Eingabefelder usw. hinzufügen, um die Benutzeroberfläche nach Ihren Wünschen zu gestalten.
- Wenden Sie Ereignisauslöser auf die Widgets an : Sie können den Widgets Ereignisauslöser hinzufügen, um zu definieren, wie sie auf Benutzerinteraktionen reagieren.
Erstellen Sie die erste Tkinter-GUI-Anwendung
Es gibt zwei Hauptmethoden, die der Benutzer beim Erstellen der Python-Anwendung mit GUI beachten muss.
Wie kann man in Gimp die Auswahl aufheben?
Tk()
Um ein Hauptfenster zu erstellen, bietet tkinter eine Methode „Tk(screenName=None, baseName=None, className=’Tk’, useTk=1)‘ an. Um den Namen des Fensters zu ändern, können Sie den Klassennamen in den gewünschten Namen ändern. Der grundlegende Code zum Erstellen des Hauptfensters der Anwendung ist:
Hauptschleife()
Es gibt eine Methode namens mainloop(), die verwendet wird, wenn Ihre Anwendung zur Ausführung bereit ist. mainloop() ist eine Endlosschleife, mit der die Anwendung ausgeführt, auf das Eintreten eines Ereignisses gewartet und das Ereignis verarbeitet wird, solange das Fenster nicht geschlossen ist.
Beispiel
Python3 import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>
Ausgabe
Tkinter-Widget
Es gibt eine Reihe von Widgets, die Sie in Ihre tkinter-Anwendung einfügen können. Einige der wichtigsten Widgets werden im Folgenden erläutert:
1. Etikett
Es bezieht sich auf das Anzeigefeld, in das Sie beliebigen Text oder ein beliebiges Bild einfügen können, das jederzeit gemäß dem Code aktualisiert werden kann. Die allgemeine Syntax lautet:
w=Label(master, option=value) master is the parameter used to represent the parent window.>Python3
from tkinter import * root = Tk() w = Label(root, text='GeeksForGeeks.org!') w.pack() root.mainloop()>
Ausgabe
2. Taste
Um Ihrer Anwendung eine Schaltfläche hinzuzufügen, wird dieses Widget verwendet. Die allgemeine Syntax lautet:
w=Button(master, option=value)>
master ist der Parameter, der zur Darstellung des übergeordneten Fensters verwendet wird. Es gibt eine Reihe von Optionen, mit denen Sie das Format der Schaltflächen ändern können. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden.Python3>
>
>
import tkinter as tk r = tk.Tk() r.title('Counting Seconds') button = tk.Button(r, text='Stop', width=25, command=r.destroy) button.pack() r.mainloop()>
Ausgabe

3. Eintrag
Es dient zur Eingabe der einzeiligen Texteingabe durch den Benutzer. Für die mehrzeilige Texteingabe wird das Text-Widget verwendet. Die allgemeine Syntax lautet:
w=Entry(master, option=value)>
master ist der Parameter, der zur Darstellung des übergeordneten Fensters verwendet wird. Es gibt eine Reihe von Optionen, mit denen das Format des Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * master = Tk() Label(master, text='First Name').grid(row=0) Label(master, text='Last Name').grid(row=1) e1 = Entry(master) e2 = Entry(master) e1.grid(row=0, column=1) e2.grid(row=1, column=1) mainloop()>
Ausgabe
Polymorphismus in Java

4. CheckButton
Zur Auswahl einer beliebigen Anzahl von Optionen, indem einem Benutzer mehrere Optionen als Umschalttasten angezeigt werden. Die allgemeine Syntax lautet:
w = CheckButton(master, option=value)>
Es gibt eine Reihe von Optionen, mit denen das Format dieses Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * master = Tk() var1 = IntVar() Checkbutton(master, text='male', variable=var1).grid(row=0, sticky=W) var2 = IntVar() Checkbutton(master, text='female', variable=var2).grid(row=1, sticky=W) mainloop()>
Ausgabe

5. Radio knopf
Es wird verwendet, um dem Benutzer eine Multi-Choice-Option anzubieten. Es bietet dem Benutzer mehrere Optionen und der Benutzer muss eine Option auswählen. Die allgemeine Syntax lautet:
w = RadioButton(master, option=value)>
Es gibt eine Reihe von Optionen, mit denen das Format dieses Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * root = Tk() v = IntVar() Radiobutton(root, text='GfG', variable=v, value=1).pack(anchor=W) Radiobutton(root, text='MIT', variable=v, value=2).pack(anchor=W) mainloop()>
Ausgabe

6. Listenfeld
Es bietet dem Benutzer eine Liste, aus der er beliebig viele Optionen übernehmen kann. Die allgemeine Syntax lautet:
w = Listbox(master, option=value) master is the parameter used to represent the parent window.>
Es gibt eine Reihe von Optionen, mit denen das Format des Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * top = Tk() Lb = Listbox(top) Lb.insert(1, 'Python') Lb.insert(2, 'Java') Lb.insert(3, 'C++') Lb.insert(4, 'Any other') Lb.pack() top.mainloop()>
Ausgabe

7. Scrollleiste
Es bezieht sich auf den Schieberegler, der zum Implementieren der aufgelisteten Widgets verwendet wird. Die allgemeine Syntax lautet:
w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>
Es gibt eine Reihe von Optionen, mit denen das Format des Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * root = Tk() scrollbar = Scrollbar(root) scrollbar.pack(side=RIGHT, fill=Y) mylist = Listbox(root, yscrollcommand=scrollbar.set) for line in range(100): mylist.insert(END, 'This is line number' + str(line)) mylist.pack(side=LEFT, fill=BOTH) scrollbar.config(command=mylist.yview) mainloop()>
Ausgabe

8. Speisekarte
Es wird zum Erstellen aller Arten von Menüs verwendet, die von der Anwendung verwendet werden. Die allgemeine Syntax lautet:
w = Menu(master, option=value) master is the parameter used to represent the parent window.>
Es gibt eine Reihe von Optionen, mit denen das Format dieses Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * root = Tk() menu = Menu(root) root.config(menu=menu) filemenu = Menu(menu) menu.add_cascade(label='File', menu=filemenu) filemenu.add_command(label='New') filemenu.add_command(label='Open...') filemenu.add_separator() filemenu.add_command(label='Exit', command=root.quit) helpmenu = Menu(menu) menu.add_cascade(label='Help', menu=helpmenu) helpmenu.add_command(label='About') mainloop()>
Ausgabe

9. Kombinationsfeld
Das Combobox-Widget wird mit der Klasse ttk.Combobox aus dem Modul tkinter.ttk erstellt. Die Werte für die Combobox werden über den Parameter „values“ angegeben. Der Standardwert wird mit der Set-Methode festgelegt. Eine Event-Handler-Funktion on_select wird mithilfe der Bindungsmethode an die Combobox gebunden, die bei jeder Auswahl eines Elements eine Beschriftung mit dem ausgewählten Element aktualisiert.
Python3 import tkinter as tk from tkinter import ttk def on_select(event): selected_item = combo_box.get() label.config(text='Selected Item: ' + selected_item) root = tk.Tk() root.title('Combobox Example') # Create a label label = tk.Label(root, text='Selected Item: ') label.pack(pady=10) # Create a Combobox widget combo_box = ttk.Combobox(root, values=['Option 1', 'Option 2', 'Option 3']) combo_box.pack(pady=5) # Set default value combo_box.set('Option 1') # Bind event to selection combo_box.bind('<>', on_select) root.mainloop()>
Ausgabe
10. Skala
Es wird verwendet, um einen grafischen Schieberegler bereitzustellen, der die Auswahl eines beliebigen Werts aus dieser Skala ermöglicht. Die allgemeine Syntax lautet:
w = Scale(master, option=value)master is the parameter used to represent the parent window.>
Es gibt eine Reihe von Optionen, mit denen das Format des Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * master = Tk() w = Scale(master, from_=0, to=42) w.pack() w = Scale(master, from_=0, to=200, orient=HORIZONTAL) w.pack() mainloop()>
Ausgabe

elf. Höchststufe
Dieses Widget wird direkt vom Fenstermanager gesteuert. Es ist kein übergeordnetes Fenster zum Bearbeiten erforderlich. Die allgemeine Syntax lautet:
w = TopLevel(master, option=value)>
Es gibt eine Reihe von Optionen, mit denen das Format des Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()>
Ausgabe
Java-Grundlagen

12. Nachricht
Es bezieht sich auf den mehrzeiligen und nicht editierbaren Text. Es funktioniert genauso wie Label. Die allgemeine Syntax lautet:
w = Message(master, option=value) master is the parameter used to represent the parent window.>
Es gibt eine Reihe von Optionen, mit denen das Format des Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>
Ausgabe

13. Menütaste
Es ist ein Teil des Top-Down-Menüs, das ständig im Fenster angezeigt wird. Jede Menüschaltfläche hat ihre eigene Funktionalität. Die allgemeine Syntax lautet:
w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>
Es gibt eine Reihe von Optionen, mit denen das Format des Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * top = Tk() mb = Menubutton ( top, text = 'GfG') mb.grid() mb.menu = Menu ( mb, tearoff = 0 ) mb['menu'] = mb.menu cVar = IntVar() aVar = IntVar() mb.menu.add_checkbutton ( label ='Contact', variable = cVar ) mb.menu.add_checkbutton ( label = 'About', variable = aVar ) mb.pack() top.mainloop()>
Ausgabe

14. Fortschrittsanzeige
Tkinter-Anwendung mit einem Fortschrittsbalken-Widget und einer Schaltfläche zum Starten des Fortschritts. Wenn Sie auf die Schaltfläche klicken, füllt sich der Fortschrittsbalken innerhalb kurzer Zeit auf 100 % und simuliert so eine Aufgabe, deren Erledigung einige Zeit in Anspruch nimmt.
Python3 import tkinter as tk from tkinter import ttk import time def start_progress(): progress.start() # Simulate a task that takes time to complete for i in range(101): # Simulate some work time.sleep(0.05) progress['value'] = i # Update the GUI root.update_idletasks() progress.stop() root = tk.Tk() root.title('Progressbar Example') # Create a progressbar widget progress = ttk.Progressbar(root, orient='horizontal', length=300, mode='determinate') progress.pack(pady=20) # Button to start progress start_button = tk.Button(root, text='Start Progress', command=start_progress) start_button.pack(pady=10) root.mainloop()>
Ausgabe
fünfzehn. SpinBox
Es handelt sich um einen Eintrag des Widgets „Eintrag“. Hier kann der Wert eingegeben werden, indem ein fester Zahlenwert ausgewählt wird. Die allgemeine Syntax lautet:
w = SpinBox(master, option=value)>
Es gibt eine Reihe von Optionen, mit denen das Format des Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>
Ausgabe:

16. Text
Um einen mehrzeiligen Text zu bearbeiten und ihn so zu formatieren, wie er angezeigt werden soll. Die allgemeine Syntax lautet:
w =Text(master, option=value)>
Es gibt eine Reihe von Optionen, mit denen Sie das Format des Textes ändern können. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>
Ausgabe

17. Leinwand
Es wird zum Zeichnen von Bildern und anderen komplexen Layouts wie Grafiken, Text und Widgets verwendet. Die allgemeine Syntax lautet:
w = Canvas(master, option=value) master is the parameter used to represent the parent window.>
Es gibt eine Reihe von Optionen, mit denen das Format des Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * master = Tk() w = Canvas(master, width=40, height=60) w.pack() canvas_height=20 canvas_width=200 y = int(canvas_height / 2) w.create_line(0, y, canvas_width, y ) mainloop()>
Ausgabe

18. PannedWindow
Es handelt sich um ein Container-Widget, das zur Verwaltung der darin angeordneten Anzahl von Fenstern verwendet wird. Die allgemeine Syntax lautet:
w = PannedWindow(master, option=value)>
Master ist der Parameter, der zur Darstellung des übergeordneten Fensters verwendet wird. Es gibt eine Reihe von Optionen, mit denen das Format des Widgets geändert werden kann. Die Anzahl der Optionen kann als durch Kommas getrennte Parameter übergeben werden. Einige davon sind unten aufgeführt.
Python3 from tkinter import * m1 = PanedWindow() m1.pack(fill=BOTH, expand=1) left = Entry(m1, bd=5) m1.add(left) m2 = PanedWindow(m1, orient=VERTICAL) m1.add(m2) top = Scale(m2, orient=HORIZONTAL) m2.add(top) mainloop()>
Ausgabe

Farboption in Tkinter
Dieses Beispiel demonstriert die Verwendung verschiedener Farboptionen in Tkinter-Widgets, einschließlich aktiver Hintergrund- und Vordergrundfarben, Hintergrund- und Vordergrundfarben, deaktivierter Statusfarben und Auswahlfarben. Jedes Widget im Beispiel zeigt eine andere Farboption und bietet eine visuelle Darstellung, wie sich diese Optionen auf das Erscheinungsbild der Widgets auswirken.
Python3 import tkinter as tk root = tk.Tk() root.title('Color Options in Tkinter') # Create a button with active background and foreground colors button = tk.Button(root, text='Click Me', activebackground='blue', activeforeground='white') button.pack() # Create a label with background and foreground colors label = tk.Label(root, text='Hello, Tkinter!', bg='lightgray', fg='black') label.pack() # Create an Entry widget with selection colors entry = tk.Entry(root, selectbackground='lightblue', selectforeground='black') entry.pack() root.mainloop()>
Ausgabe
Erfahren Sie mehr zum Verbessern der Schriftart: Tkinter-Schriftart
Geometriemanagement
Tkinter bietet auch Zugriff auf die geometrische Konfiguration der Widgets, wodurch die Widgets in den übergeordneten Fenstern organisiert werden können. Es gibt hauptsächlich drei Geometrie-Manager-Klassen.
pack()-Methode
Es organisiert die Widgets in Blöcken, bevor es im übergeordneten Widget platziert wird.
Python3 import tkinter as tk root = tk.Tk() root.title('Pack Example') # Create three buttons button1 = tk.Button(root, text='Button 1') button2 = tk.Button(root, text='Button 2') button3 = tk.Button(root, text='Button 3') # Pack the buttons vertically button1.pack() button2.pack() button3.pack() root.mainloop()>
Ausgabe
Grid()-Methode
Es organisiert die Widgets in einem Raster (tabellenartige Struktur), bevor es im übergeordneten Widget platziert wird.
Python3 import tkinter as tk root = tk.Tk() root.title('Grid Example') # Create three labels label1 = tk.Label(root, text='Label 1') label2 = tk.Label(root, text='Label 2') label3 = tk.Label(root, text='Label 3') # Grid the labels in a 2x2 grid label1.grid(row=0, column=0) label2.grid(row=0, column=1) label3.grid(row=1, column=0, columnspan=2) root.mainloop()>
Ausgabe
Was ist Objekt Java?
place()-Methode
Es organisiert die Widgets, indem es sie an bestimmten, vom Programmierer vorgegebenen Positionen platziert.
Python3 import tkinter as tk root = tk.Tk() root.title('Place Example') # Create a label label = tk.Label(root, text='Label') # Place the label at specific coordinates label.place(x=50, y=50) root.mainloop()>
Ausgabe