Einführung
In diesem Projekt werden wir eine einfache Stoppuhr-Anwendung mit Python und Tkinter erstellen. Die Stoppuhr wird die Funktionen Start, Stop, Reset und Beenden haben. Wir werden die Tkinter-Bibliothek für die grafischen Benutzeroberflächenkomponenten (GUI) und die Zeitbibliothek für zeitbezogene Operationen verwenden.
👀 Vorschau

🎯 Aufgaben
In diesem Projekt lernen Sie:
- Wie Sie die erforderlichen Bibliotheken für GUI- und zeitbezogene Operationen importieren
- Wie Sie eine Stoppuhr-Klasse definieren, die die Frame-Klasse erweitert
- Wie Sie GUI-Komponenten für die Stoppuhr erstellen
- Wie Sie die verstrichene Zeit aktualisieren und in der GUI anzeigen
- Wie Sie die Funktionalität zum Starten, Stoppen und Zurücksetzen der Stoppuhr implementieren
- Wie Sie eine Hauptfunktion erstellen, um das Stoppuhr-Objekt zu initialisieren und Buttons für die Interaktion hinzuzufügen
🏆 Errungenschaften
Nach Abschluss dieses Projekts werden Sie in der Lage sein:
- Eine GUI-Anwendung mit Tkinter in Python zu erstellen
- Mit zeitbezogenen Operationen in Python umzugehen
- Die Funktionalität einer Stoppuhr zu implementieren
Erstelle die Projektdateien
Erstellen Sie zunächst eine neue Datei mit dem Namen stopwatch.py und öffnen Sie sie in Ihrem bevorzugten Code-Editor.
cd ~/project
touch stopwatch.py
Importiere erforderliche Bibliotheken
Öffnen Sie in der Datei stopwatch.py und beginnen Sie mit dem Importieren der erforderlichen Bibliotheken. Für die GUI-Komponenten benötigen wir Tkinter, für thematisierte Widgets ttk und für zeitbezogene Operationen time. Fügen Sie den folgenden Code am Anfang der Datei hinzu:
from tkinter import *
from tkinter import ttk
import time
Definiere die StopWatch-Klasse
Als nächstes definieren Sie eine Klasse namens StopWatch, die die Frame-Klasse erweitert. Wir werden diese Klasse verwenden, um die Stoppuhr-Funktionalität zu erstellen. Fügen Sie den folgenden Code nach den Importanweisungen hinzu:
class StopWatch(Frame):
def __init__(self, parent=None, **kw):
Frame.__init__(self, parent, kw)
self._start = 0.0
self._elapsedtime = 0.0
self._running = 0
self.timestr = StringVar()
self.makeWidgets()
Erstelle die GUI-Komponenten
Innerhalb der StopWatch-Klasse fügen Sie eine Methode namens makeWidgets hinzu, die die GUI-Komponenten erstellt und positioniert. Diese Methode wird vom Konstruktor aufgerufen. Fügen Sie den folgenden Code innerhalb der StopWatch-Klasse hinzu:
def makeWidgets(self):
l = ttk.Label(self, textvariable=self.timestr)
self._setTime(self._elapsedtime)
l.pack(fill=X, expand=NO, pady=2, padx=2)
Aktualisiere die verstrichene Zeit
Fügen Sie innerhalb der StopWatch-Klasse eine Methode namens _update hinzu. Diese Methode wird die verstrichene Zeit berechnen und die GUI aktualisieren. Fügen Sie den folgenden Code innerhalb der StopWatch-Klasse hinzu:
def _update(self):
self._elapsedtime = time.time() - self._start
self._setTime(self._elapsedtime)
self._timer = self.after(50, self._update)
Stelle die Zeit ein
Fügen Sie innerhalb der StopWatch-Klasse eine Methode namens _setTime hinzu. Diese Methode wird die Zeit formatieren und die Variable timestr aktualisieren. Fügen Sie den folgenden Code innerhalb der StopWatch-Klasse hinzu:
def _setTime(self, elap):
minutes = int(elap / 60)
hours = int(minutes / 60)
seconds = int(elap - minutes * 60.0)
hseconds = int((elap - minutes * 60.0 - seconds) * 100)
self.timestr.set('%02d:%02d:%02d:%02d' % (hours, minutes, seconds, hseconds))
Implementiere die Startfunktionalität
Fügen Sie innerhalb der StopWatch-Klasse eine Methode namens Start hinzu. Diese Methode wird die Stoppuhr starten. Fügen Sie den folgenden Code innerhalb der StopWatch-Klasse hinzu:
def Start(self):
if not self._running:
self._start = time.time() - self._elapsedtime
self._update()
self._running = 1
Implementiere die Stoppfunktionalität
Fügen Sie innerhalb der StopWatch-Klasse eine Methode namens Stop hinzu. Diese Methode wird die Stoppuhr stoppen. Fügen Sie den folgenden Code innerhalb der StopWatch-Klasse hinzu:
def Stop(self):
if self._running:
self.after_cancel(self._timer)
self._elapsedtime = time.time() - self._start
self._setTime(self._elapsedtime)
self._running = 0
Implementiere die Zurücksetzung-Funktionalität
Fügen Sie innerhalb der StopWatch-Klasse eine Methode namens Reset hinzu. Diese Methode wird die Stoppuhr zurücksetzen. Fügen Sie den folgenden Code innerhalb der StopWatch-Klasse hinzu:
def Reset(self):
self._start = time.time()
self._elapsedtime = 0.0
self._setTime(self._elapsedtime)
Erstelle die Hauptfunktion
Fügen Sie eine main-Funktion außerhalb der StopWatch-Klasse hinzu. Diese Funktion wird das Hauptanwendungsprogrammfenster erstellen, das StopWatch-Objekt initialisieren und Buttons für Start, Stop, Zurücksetzen und Beenden hinzufügen. Fügen Sie den folgenden Code nach der StopWatch-Klasse hinzu:
def main():
root = Tk()
sw = StopWatch(root)
sw.pack(side=TOP)
Button(root, text='Start', command=sw.Start).pack(side=LEFT)
Button(root, text='Stop', command=sw.Stop).pack(side=LEFT)
Button(root, text='Reset', command=sw.Reset).pack(side=LEFT)
Button(root, text='Quit', command=root.quit).pack(side=LEFT)
root.mainloop()
if __name__ == '__main__':
main()
Führe das Projekt aus
Schalten Sie schließlich auf den Desktop um und führen Sie das Projekt mit dem folgenden Befehl aus:
python stopwatch.py

Zusammenfassung
Herzlichen Glückwunsch! Sie haben erfolgreich eine Stoppuhr-Anwendung mit Python und Tkinter erstellt. Wir haben die Schritte zur Erstellung der Projektdateien, zum Importieren der erforderlichen Bibliotheken, zum Definieren der StopWatch-Klasse, zum Erstellen von GUI-Komponenten, zum Aktualisieren der verstrichenen Zeit, zur Implementierung der Start-, Stop- und Zurücksetzungsfunktionalität und zum Erstellen der Hauptanwendung durchlaufen. Sie können jetzt das Projekt ausführen und die Buttons verwenden, um die Stoppuhr zu steuern.



