Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Das Erstellen eines Kalenders ist eine großartige Möglichkeit, um etwas über das Erstellen von GUI-Anwendungen mit dem Tkinter-Modul von Python zu lernen. Sie können diese Anwendung verwenden, um Ereignisse im Voraus zu verwalten und zu planen.

Wenn Sie noch weiter gehen, können Sie die App erweitern, um anstehende Besprechungen zu verfolgen und Erinnerungen festzulegen. Sie könnten sogar die Zusammenarbeit mit den Kalendern anderer Benutzer einführen, um Terminkonflikte zu vermeiden.

Alles beginnt mit dem Grundgerüst einer GUI-Kalender-App.

Die Module Calendar, Tkinter und DateTime

Um den GUI-Kalender zu erstellen, verwenden Sie den Kalender, Tkinter und das DateTime-Modul. Der Kalendermodul wird mit Python geliefert und ermöglicht es Ihnen, datums-, monats- und kalenderbezogene Aktionen auszuführen.

Mit Tkinter können Sie Desktop-Anwendungen erstellen

instagram viewer
. Es bietet eine Vielzahl von Widgets, hilfreichen Bibliotheken, Canvas-Objekten und HTML/XML/PDF-Parsern. Um eine GUI-Anwendung zu erstellen, müssen Sie lediglich Folgendes tun:

  1. Importieren Sie die Bibliothek.
  2. Erstellen Sie ein Fenster.
  3. Fügen Sie diesem Fenster Widgets hinzu.
  4. Rufen Sie die Hauptereignisschleife auf, um Aktionen basierend auf der Benutzerinteraktion auszuführen.

Um Tkinter in Ihrem System zu installieren, öffnen Sie ein Terminal und führen Sie Folgendes aus:

pip installiere tkinter

Das DateTime-Modul ist ein weiteres integriertes Modul. Es bietet mehrere Klassen, die mit Daten, Uhrzeiten und Zeitintervallen umgehen können. Mit diesem Modul können Sie einen Ereignisplaner erstellen, ein Wecker, ein Datumsrechner und eine Zeitzonenanwendung.

So erstellen Sie einen GUI-Kalender mit Python

Darin finden Sie den Quellcode des GUI-Kalenders mit Python GitHub-Repository.

Beginnen Sie mit dem Importieren von Tkinter, Calendar und dem DateTime-Modul. Funktion definieren, Kalender drucken. Verwenden Sie die erhalten() -Methode auf der Spinbox (später im Code definiert), um den vom Benutzer gewählten Monat und das Jahr zu extrahieren. Übergeben Sie diese Werte an das Kalendermodul, um einen formatierten Textkalender zu erhalten, der das angegebene Jahr und den angegebenen Monat darstellt. Dieser Text stellt ein einfaches Monospace-Raster dar, wobei die Tage in Wochen angeordnet sind, beginnend am Montag.

Löschen Sie alle vorhandenen Daten vom Bildschirm. 1.0 gibt den Anfang des Feldes an, und Ende zeigt das Ende des Feldes an. Fügen Sie schließlich den zuvor generierten Kalender ein und zeigen Sie ihn auf dem Bildschirm an.

aus tkinter importieren *
importieren Kalender
aus Terminzeit importieren Datum

defKalender drucken():
Monat = int (Monat_box.get())
Jahr = int (year_box.get())
output_calendar = kalender.monat (Jahr, Monat)
kalenderfeld.löschen(1.0, 'Ende')
kalender_feld.insert('Ende', Ausgabe_Kalender)

Funktion definieren, zurücksetzen. Löschen Sie den Inhalt auf dem Bildschirm und stellen Sie den Monat und das Jahr auf die Gegenwart ein und verwenden Sie die config() Methode, um es auf dem Bildschirm anzuzeigen.

defzurücksetzen():
kalenderfeld.löschen(1.0, 'Ende')
month_var.set (aktueller_Monat)
year_var.set (aktuelles_Jahr)
month_box.config (Textvariable=Monat_var)
year_box.config (Textvariable=year_var)

Definieren Sie eine Funktion, schließen Sie, um die Fensteranzeige zu zerstören, und beenden Sie das Programm.

defschließen():
guiWindow.destroy()

Initialisieren Sie die Tkinter-Instanz und zeigen Sie das Root-Fenster an. Legen Sie den Titel und die Abmessungen in Pixeln fest und deaktivieren Sie die Größenänderung, indem Sie die Parameter auf 0 belassen.

Wenn __name__ == "__hauptsächlich__":
guiWindow = Tk()
guiWindow.title("GUI-Kalender")
guiWindow.geometry('500x550')
guiWindow.resizable(0, 0)

Definieren Sie vier Rahmen für die Kopfzeile, den Monats- und Jahreseintrag, die Anzeige und die Schaltflächen. Es erfüllt die Funktion eines Containers und steuert die Platzierung anderer Widgets. Es ordnet das Layout an und stellt Polsterung für diese Widgets bereit, indem rechteckige Abschnitte auf dem Bildschirm verwendet werden.

Organisieren Sie die Frames in Blöcken, bevor Sie sie mithilfe von im Gui-Fenster platzieren Pack() Methode. Setzen Sie den Wert von expand auf true, damit das Widget seine Größe ändern und seinen verfügbaren Platz erweitern kann. Stellen Sie die ein füllen -Attribut auf beide, damit das Widget erweitert werden kann, um das gesamte Fenster in x- und y-Richtung einzunehmen.

 header_frame = Rahmen (guiWindow)
entry_frame = Rahmen (guiWindow)
result_frame = Rahmen (guiWindow)
button_frame = Rahmen (guiWindow)

header_frame.pack (erweitern=WAHR, füllen="beide")
entry_frame.pack (erweitern=WAHR, füllen="beide")
result_frame.pack (erweitern=WAHR, füllen="beide")
button_frame.pack (erweitern=WAHR, füllen="beide")

Geben Sie drei Bezeichnungen für Kopfzeile, Monat und Jahr an. Legen Sie das übergeordnete Fenster fest, in dem Sie es platzieren möchten, den Text, den es anzeigen soll, die Schriftstile zusammen mit der Schriftfarbe. Verpacken und platzieren Sie die Etiketten an geeigneter Stelle. Assoziieren IntVar() mit dem Eintragsrahmen um ganzzahlige Daten zu setzen und zu empfangen.

 header_label = Beschriftung (header_frame, text="KALENDER",
Schriftart=('arial', '45', 'deutlich'), fg="#A020F0")

header_label.pack (erweitern=WAHR, füllen="beide")

month_label = Bezeichnung (entry_frame, text="Monat:",
Schriftart=("arial", "20", "deutlich"), fg="#000000")

year_label = Label (entry_frame, text="Jahr:",
Schriftart=("arial", "20", "deutlich"), fg="#000000")

monat_label.place (x=30, y=0)
year_label.place (x=275, y=0)
month_var = IntVar (entry_frame)
year_var = IntVar (entry_frame)

Rufen Sie den aktuellen Monat und das aktuelle Jahr ab und setzen Sie ihn auf die Variable IntVar(). Verwenden Sie das Spinbox-Widget, um dem Benutzer einen Wertebereich anzugeben. Legen Sie den Wertebereich fest, den die Spinbox enthalten soll, die Breite, den aktuellen Wert, den sie enthalten soll, und die Schriftstile. Positionieren Sie die Boxen entsprechend.

 aktueller_Monat = Datum.heute().Monat
aktuelles_jahr = datum.heute().jahr
month_var.set (aktueller_Monat)
year_var.set (aktuelles_Jahr)

month_box = Spinbox (entry_frame, from_=1, zu=12, Breite ="10",
Textvariable=Monatsvariable, Schriftart=('arial','15'))

year_box = Spinbox (entry_frame, from_=0000, zu=3000, Breite ="10",
textvariable=year_var, font=('arial','15'))

monat_box.place (x=130, y=5)
jahr_box.ort (x=360, y=5)

Deklarieren Sie ein Textfeld und legen Sie das übergeordnete Fenster, Breite, Höhe, Schriftart, 3D-Animationsstil und Rahmenbreite fest. Organisieren Sie das Text-Widget und deklarieren Sie drei Schaltflächen zum Anzeigen, Zurücksetzen und Schließen des Fensters. Die Schaltflächen enthalten eine zusätzliche Hintergrundfarbeigenschaft und eine Befehlseigenschaft.

Mit der Befehlseigenschaft können Sie die Funktion festlegen, die nach dem Klicken ausgeführt werden soll. Platziere die Knöpfe in einer einzigen Reihe mit viel Abstand zwischen ihnen.

 Kalenderfeld = Text (Ergebnisrahmen, Breite=20, Höhe =8,
Schriftart=("Kurier", "18"), relief=RIDGE, borderwidth=2)

kalender_feld.pack()

display_button = Schaltfläche (button_frame, text="ANZEIGE", bg="#A020F0",
fg="#E0FFFF", command=printCalendar, font=('arial', '15'))

reset_button = Schaltfläche (button_frame, text="ZURÜCKSETZEN", bg="#A020F0",
fg="#E0FFFF", Befehl = zurücksetzen, Schriftart = ('arial','15'))

close_button = Schaltfläche (button_frame, text="SCHLIESSEN", bg="#A020F0",
fg="#E0FFFF", Befehl=Schließen, Schriftart=('arial','15'))

display_button.place (x=55, y=0)
reset_button.place (x=210, y=0)
close_button.place (x=350, y=0)

Der Hauptschleife() Die Funktion weist Python an, die Tkinter-Ereignisschleife auszuführen und auf Ereignisse (z. B. Tastendrücke) zu warten, bis Sie das Fenster schließen.

 guiWindow.mainloop()

Stellen Sie den gesamten Code zusammen, um Ihren GUI-Kalender in Aktion zu sehen.

Beispielausgabe des GUI-Kalenders

Beim Ausführen des obigen Programms zeigt das Programm ein Fenster mit dem aktuellen Monat und Datum an. Die Schaltfläche „Zurücksetzen“ zeigt denselben Bildschirm an, wenn sie angeklickt wird.

Wenn Sie den Monat auf 3 und das Jahr auf 2000 setzen, zeigt das Programm den Kalender für März 2000 an. Beim Drücken der Schaltfläche Schließen zerstört das Programm das Fenster und stoppt seine Ausführung.

Nehmen Sie einige Anfänger-GUI-Projekte mit Python in Angriff

Das Erstellen von GUI-Anwendungen war noch nie so einfach. Das Tkinter-Modul von Python bietet viele hilfreiche Widgets, die Sie mit sehr wenig Code vollständig anpassen können. Darüber hinaus erhalten Sie Zugriff auf Layout-Manager wie Pack, Grid und Place, um Elemente nach Ihren Wünschen zu positionieren.

Sie können ein Tippspiel, eine Farbpalette, einen Währungsumrechner oder einen Taschenrechner erstellen, um loszulegen. Es macht Spaß, diese Anwendungen zu erstellen, und Ihre objektorientierten Programmierkenntnisse werden mit Leichtigkeit entwickelt.