Αναγνώστες σαν εσάς βοηθούν στην υποστήριξη του MUO. Όταν κάνετε μια αγορά χρησιμοποιώντας συνδέσμους στον ιστότοπό μας, ενδέχεται να κερδίσουμε μια προμήθεια θυγατρικών. Διαβάστε περισσότερα.

Η δημιουργία ενός ημερολογίου είναι ένας πολύ καλός τρόπος για να μάθετε για τη δημιουργία εφαρμογών GUI με τη λειτουργική μονάδα Tkinter της Python. Μπορείτε να χρησιμοποιήσετε αυτήν την εφαρμογή για να διαχειριστείτε και να προγραμματίσετε εκδηλώσεις εκ των προτέρων.

Προχωρώντας περαιτέρω, θα μπορούσατε να επεκτείνετε την εφαρμογή για να παρακολουθείτε τις επερχόμενες συσκέψεις και να ορίζετε υπενθυμίσεις. Θα μπορούσατε ακόμη και να εισαγάγετε τη συνεργασία με τα ημερολόγια άλλων χρηστών για να αποφύγετε τις διενέξεις προγραμματισμού.

Όλα ξεκινούν με τον βασικό σκελετό μιας εφαρμογής GUI Calendar.

Οι ενότητες Calendar, Tkinter και DateTime

Για να δημιουργήσετε το Ημερολόγιο GUI, θα χρησιμοποιήσετε το Ημερολόγιο, το Tkinter και τη μονάδα DateTime. ο Μονάδα ημερολογίου συνοδεύεται από Python και σας δίνει τη δυνατότητα να εκτελέσετε ενέργειες που σχετίζονται με την ημερομηνία, τον μήνα και το ημερολόγιο.

instagram viewer

Το Tkinter σάς επιτρέπει να δημιουργείτε εφαρμογές επιφάνειας εργασίας. Προσφέρει μια ποικιλία γραφικών στοιχείων, χρήσιμες βιβλιοθήκες, αντικείμενα καμβά και αναλυτές HTML/XML/PDF. Για να δημιουργήσετε μια εφαρμογή GUI το μόνο που χρειάζεται να κάνετε είναι:

  1. Εισαγάγετε τη βιβλιοθήκη.
  2. Δημιουργήστε ένα παράθυρο.
  3. Προσθέστε γραφικά στοιχεία σε αυτό το παράθυρο.
  4. Καλέστε τον κύριο βρόχο συμβάντος για να εκτελέσετε ενέργειες που βασίζονται στην αλληλεπίδραση με τον χρήστη.

Για να εγκαταστήσετε το Tkinter στο σύστημά σας, ανοίξτε ένα τερματικό και εκτελέστε:

pip εγκατάσταση tkinter

Η μονάδα DateTime είναι άλλη μια ενσωματωμένη. Προσφέρει πολλές κατηγορίες που μπορούν να ασχοληθούν με ημερομηνίες, ώρες και χρονικά διαστήματα. Με αυτήν την ενότητα, μπορείτε να δημιουργήσετε έναν προγραμματιστή συμβάντων, ένα ξυπνητήρι, μια αριθμομηχανή ημερομηνίας και μια εφαρμογή ζώνης ώρας.

Πώς να δημιουργήσετε ένα ημερολόγιο GUI χρησιμοποιώντας Python

Μπορείτε να βρείτε τον πηγαίο κώδικα του Ημερολογίου GUI χρησιμοποιώντας Python σε αυτό Αποθετήριο GitHub.

Ξεκινήστε εισάγοντας τη μονάδα Tkinter, Calendar και DateTime. Ορίστε μια συνάρτηση, printCalendar. Χρησιμοποιήστε το παίρνω() μέθοδος στο Spinbox (που ορίζεται αργότερα στον κώδικα) για την εξαγωγή του μήνα και του έτους που έχει επιλέξει ο χρήστης. Περάστε αυτές τις τιμές στη λειτουργική μονάδα ημερολογίου για να λάβετε ένα μορφοποιημένο ημερολόγιο κειμένου που αντιπροσωπεύει το καθορισμένο έτος και μήνα. Αυτό το κείμενο αντιπροσωπεύει ένα απλό μονοδιαστημικό πλέγμα, με ημέρες ταξινομημένες σε εβδομάδες που ξεκινούν τη Δευτέρα.

Διαγράψτε τυχόν υπάρχοντα δεδομένα από την οθόνη. 1.0 δείχνει την αρχή του πεδίου και τέλος δείχνει το τέλος του πεδίου. Τέλος, εισάγετε το ημερολόγιο που δημιουργήθηκε νωρίτερα και εμφανίστε το στην οθόνη.

από tkinter εισαγωγή *
εισαγωγή Ημερολόγιο
από ημερομηνία ώρα εισαγωγή ημερομηνία

defprintCalendar():
μήνας = int (month_box.get())
έτος = int (year_box.get())
output_calendar = calendar.month (έτος, μήνας)
calendar_field.delete(1.0, 'τέλος')
calendar_field.insert('τέλος', output_calendar)

Ορίστε μια συνάρτηση, επαναφορά. Διαγράψτε τα περιεχόμενα στην οθόνη και ορίστε το μήνα και το έτος στο παρόν και χρησιμοποιήστε το config() τρόπο για να το εμφανίσετε στην οθόνη.

defεπαναφορά():
calendar_field.delete(1.0, 'τέλος')
month_var.set (current_month)
year_var.set (current_year)
month_box.config (textvariable=month_var)
year_box.config (textvariable=year_var)

Ορίστε μια λειτουργία, κλείστε για να καταστρέψετε την οθόνη του παραθύρου και βγείτε από το πρόγραμμα.

defΚλείσε():
guiWindow.destroy()

Αρχικοποιήστε την παρουσία Tkinter και εμφανίστε το ριζικό παράθυρο. Ορίστε τον τίτλο, τις διαστάσεις σε εικονοστοιχεία και απενεργοποιήστε την αλλαγή του μεγέθους του διατηρώντας τις παραμέτρους ως 0.

αν __όνομα__ == "__κύριος__":
guiWindow = Tk()
guiWindow.title("Ημερολόγιο GUI")
guiWindow.geometry('500x550')
guiWindow.resizable(0, 0)

Ορίστε τέσσερα πλαίσια για τον τίτλο της κεφαλίδας, την καταχώρηση μήνα και έτους, την οθόνη και τα κουμπιά. Εκτελεί τη λειτουργία ενός κοντέινερ, κατευθύνοντας την τοποθέτηση άλλων γραφικών στοιχείων. Τακτοποιεί τη διάταξη και παρέχει επένδυση για αυτά τα γραφικά στοιχεία χρησιμοποιώντας ορθογώνια τμήματα στην οθόνη.

Οργανώστε τα πλαίσια σε μπλοκ πριν τα τοποθετήσετε στο παράθυρο χρησιμοποιώντας το πακέτο() μέθοδος. Ορίστε την τιμή της επέκτασης σε true για να επιτρέψετε στο widget να αλλάξει μέγεθος και να επεκταθεί στον διαθέσιμο χώρο του. Ρυθμίστε το γέμισμα αποδίδουν και στα δύο για να επιτρέπεται στο γραφικό στοιχείο να επεκταθεί ώστε να καταλαμβάνει ολόκληρο το παράθυρο στην κατεύθυνση x και y.

 header_frame = Πλαίσιο (guiWindow)
entry_frame = Πλαίσιο (guiWindow)
result_frame = Πλαίσιο (guiWindow)
button_frame = Πλαίσιο (guiWindow)

header_frame.pack (expand=Αληθής, γεμίζω="και τα δυο")
entry_frame.pack (expand=Αληθής, γεμίζω="και τα δυο")
result_frame.pack (expand=Αληθής, γεμίζω="και τα δυο")
button_frame.pack (expand=Αληθής, γεμίζω="και τα δυο")

Καθορίστε τρεις ετικέτες για την κεφαλίδα, τον μήνα και το έτος. Ορίστε το γονικό παράθυρο στο οποίο θέλετε να το τοποθετήσετε, το κείμενο που θα εμφανίζεται, τα στυλ γραμματοσειράς μαζί με το χρώμα της γραμματοσειράς. Συσκευάστε και τοποθετήστε τις ετικέτες σε κατάλληλη θέση. Σύντροφος IntVar() με την είσοδος_πλαίσιο για να ορίσετε και να λάβετε ακέραια δεδομένα.

 header_label = Ετικέτα (header_frame, text="ΗΜΕΡΟΛΟΓΙΟ",
γραμματοσειρά=('arial', '45', 'τολμηρός'), fg="#A020F0")

header_label.pack (expand=Αληθής, γεμίζω="και τα δυο")

month_label = Ετικέτα (entry_frame, text="Μήνας:",
γραμματοσειρά=("arial", "20", "τολμηρός"), fg="#000000")

year_label = Ετικέτα (entry_frame, text="Ετος:",
γραμματοσειρά=("arial", "20", "τολμηρός"), fg="#000000")

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

Λάβετε τον τρέχοντα μήνα, έτος και ορίστε τον στη μεταβλητή IntVar(). Χρησιμοποιήστε το γραφικό στοιχείο Spinbox για να καθορίσετε ένα εύρος τιμών στο χρήστη. Ορίστε το εύρος τιμών που θα περιέχει το Spinbox, το πλάτος, την τρέχουσα τιμή που πρέπει να κρατά και τα στυλ γραμματοσειράς. Τοποθετήστε τα κουτιά κατάλληλα.

 τρέχον_μήνας = ημερομηνία.σήμερα().μήνας
τρέχον_έτος = ημερομηνία.σήμερα().έτος
month_var.set (current_month)
year_var.set (current_year)

month_box = Spinbox (entry_frame, from_=1, προς=12, πλάτος="10",
textvariable=month_var, font=('arial','15'))

year_box = Spinbox (entry_frame, from_=0000, προς=3000, πλάτος="10",
textvariable=year_var, font=('arial','15'))

month_box.place (x=130, y=5)
year_box.place (x=360, y=5)

Δηλώστε ένα πεδίο κειμένου και ορίστε το γονικό του παράθυρο, το πλάτος, το ύψος, το στυλ γραμματοσειράς, το στυλ τρισδιάστατης κίνησης και το πλάτος περιγράμματος. Οργανώστε το γραφικό στοιχείο κειμένου και δηλώστε τρία κουμπιά για εμφάνιση, επαναφορά και κλείσιμο του παραθύρου. Τα κουμπιά περιέχουν μια πρόσθετη ιδιότητα χρώματος φόντου και μια ιδιότητα εντολής.

Χρησιμοποιώντας την ιδιότητα εντολής, μπορείτε να ορίσετε τη συνάρτηση που θα πρέπει να εκτελεστεί μόλις κάνετε κλικ. Τοποθετήστε τα κουμπιά σε μια σειρά με άφθονο χώρο μεταξύ καθενός από αυτά.

 calendar_field = Κείμενο (αποτέλεσμα_πλαίσιο, πλάτος=20, ύψος=8,
γραμματοσειρά=("μεταφορέας", "18"), ανάγλυφο=RIDGE, borderwidth=2)

calendar_field.pack()

display_button = Κουμπί (button_frame, text="ΑΠΕΙΚΟΝΙΣΗ", bg="#A020F0",
fg="#E0FFFF", command=printCalendar, font=('arial', '15'))

reset_button = Κουμπί (button_frame, text="ΕΠΑΝΑΦΟΡΑ", bg="#A020F0",
fg="#E0FFFF", command=reset, font=('arial','15'))

close_button = Κουμπί (button_frame, text="ΚΛΕΙΣΕ", bg="#A020F0",
fg="#E0FFFF", εντολή=κλείσιμο, γραμματοσειρά=('arial','15'))

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

ο mainloop() Η συνάρτηση λέει στην Python να εκτελέσει τον βρόχο συμβάντων Tkinter και να ακούσει συμβάντα (όπως το πάτημα κουμπιών) μέχρι να κλείσετε το παράθυρο.

 guiWindow.mainloop()

Συνδυάστε όλο τον κώδικα για να δείτε το ημερολόγιο GUI σας σε δράση.

Δείγμα εξόδου του Ημερολογίου GUI

Κατά την εκτέλεση του προγράμματος πάνω από το πρόγραμμα εμφανίζει ένα παράθυρο με τον τρέχοντα μήνα και ημερομηνία. Το κουμπί Επαναφορά εμφανίζει την ίδια οθόνη όταν κάνετε κλικ.

Όταν ρυθμίσετε τον μήνα σε 3 και το έτος στο 2000, το πρόγραμμα εμφανίζει το ημερολόγιο για τον Μάρτιο του 2000. Πατώντας το κουμπί Κλείσιμο, το πρόγραμμα καταστρέφει το παράθυρο και σταματά την εκτέλεσή του.

Αναλάβετε μερικά έργα GUI για αρχάριους χρησιμοποιώντας Python

Η δημιουργία εφαρμογών GUI δεν ήταν ποτέ τόσο εύκολη. Η ενότητα Tkinter της Python παρέχει πολλά χρήσιμα widget τα οποία μπορείτε να προσαρμόσετε πλήρως με πολύ λίγο κώδικα. Μαζί με αυτό, έχετε πρόσβαση σε διαχειριστές διάταξης όπως στοιχεία συσκευασίας, πλέγματος και θέσης για τοποθέτηση σύμφωνα με την επιθυμία σας.

Μπορείτε να δημιουργήσετε ένα δοκιμαστικό παιχνίδι πληκτρολόγησης, παλέτα χρωμάτων, μετατροπέα νομισμάτων ή αριθμομηχανή για να ξεκινήσετε. Αυτές οι εφαρμογές είναι διασκεδαστικές στην κατασκευή και θα αναπτύξουν τις αντικειμενοστρεφείς δεξιότητές σας στον προγραμματισμό με ευκολία.