בניית לוח שנה היא דרך מצוינת ללמוד על יצירת יישומי GUI עם מודול Tkinter של Python. אתה יכול להשתמש באפליקציה זו כדי לנהל ולתכנן אירועים מבעוד מועד.
אם לוקחים את זה רחוק יותר, אתה יכול להרחיב את האפליקציה כדי לעקוב אחר פגישות קרובות ולהגדיר תזכורות. אתה יכול אפילו להציג שיתוף פעולה עם לוחות שנה של משתמשים אחרים כדי למנוע התנגשויות תזמון.
הכל מתחיל בשלד הבסיסי של אפליקציית יומן GUI.
מודולי לוח השנה, Tkinter ו-DateTime
כדי לבנות את לוח השנה של ה-GUI, תשתמש בלוח השנה, ב-Tkinter ובמודול DateTime. ה מודול לוח שנה מגיע עם Python ומאפשר לך לבצע פעולות הקשורות לתאריך, חודש ולוח שנה.
Tkinter מאפשר לך ליצור יישומי שולחן עבודה. הוא מציע מגוון של ווידג'טים, ספריות מועילות, אובייקטי קנבס ומנתחי HTML/XML/PDF. כדי לבנות יישום GUI כל מה שאתה צריך לעשות הוא:
- ייבא את הספרייה.
- צור חלון.
- הוסף ווידג'טים לחלון זה.
- התקשר ללולאת האירוע הראשי כדי לבצע פעולות המבוססות על אינטראקציה של המשתמש.
כדי להתקין את Tkinter במערכת שלך, פתח מסוף והפעל:
pip להתקין tkinter
מודול DateTime הוא מודול נוסף המובנה. הוא מציע מספר שיעורים שיכולים להתמודד עם תאריכים, שעות ומרווחי זמן. עם מודול זה, אתה יכול לבנות מתזמן אירועים, שעון מעורר, מחשבון תאריך ויישום אזור זמן.
כיצד לבנות לוח שנה GUI באמצעות Python
אתה יכול למצוא את קוד המקור של לוח השנה של GUI באמצעות Python כאן מאגר GitHub.
התחל בייבוא Tkinter, לוח שנה ומודול DateTime. הגדר פונקציה, printCalendar. להשתמש ב לקבל() שיטה ב-Spinbox (מוגדרת מאוחר יותר בקוד) כדי לחלץ את החודש והשנה שהמשתמש בחר. העבר ערכים אלה למודול לוח השנה כדי לקבל לוח שנה טקסט מעוצב המייצג את השנה והחודש שצוינו. טקסט זה מייצג רשת מונוספייס פשוטה, עם ימים מסודרים בשבועות החל מיום שני.
נקה את כל הנתונים הקיימים מהמסך. 1.0 מציין את תחילת השדה, ו סוֹף מציין את סוף השדה. לבסוף, הכנס את לוח השנה שנוצר קודם לכן והצג אותו על המסך.
מ tkinter יְבוּא *
יְבוּא לוּחַ שָׁנָה
מ תאריך שעה יְבוּא תַאֲרִיך
defprintCalendar():
month = int (month_box.get())
year = int (year_box.get())
output_calendar = calendar.month (שנה, חודש)
calendar_field.delete(1.0, 'סוֹף')
calendar_field.insert('סוֹף', פלט_לוח שנה)
הגדר פונקציה, אִתחוּל. מחק את התוכן על המסך והגדר את החודש והשנה להווה והשתמש ב- config() שיטה להציג אותו על המסך.
defאִתחוּל():
calendar_field.delete(1.0, 'סוֹף')
month_var.set (current_month)
year_var.set (שנה_נוכחית)
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)
הגדר ארבע מסגרות עבור כותרת הכותרת, רשומת החודש והשנה, התצוגה והלחצנים. הוא מבצע את הפונקציה של מיכל, מכוון את המיקום של ווידג'טים אחרים. הוא מסדר את הפריסה ומספק ריפוד עבור ווידג'טים אלה באמצעות חלקים מלבניים על המסך.
ארגן את המסגרות בלוקים לפני הצבתם ב-guiwindow באמצעות ה- חבילה() שיטה. הגדר את הערך של הרחבה ל-true כדי לאפשר לווידג'ט לשנות את הגודל ולהרחיב בשטח הפנוי שלו. הגדר את למלא תכונה לשניהם כדי לאפשר לווידג'ט להתרחב כדי לכבוש את כל החלון בכיוון 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="לוּחַ שָׁנָה",
גופן=('אריאל', '45', 'נוֹעָז'), fg="#A020F0")header_label.pack (expand=נָכוֹן, מילוי="שניהם")
month_label = תווית (מסגרת_כניסה, טקסט="חוֹדֶשׁ:",
גופן=("אריאל", "20", "נוֹעָז"), fg="#000000")year_label = תווית (מסגרת_כניסה, טקסט="שָׁנָה:",
גופן=("אריאל", "20", "נוֹעָז"), fg="#000000")
month_label.place (x=30, y=0)
year_label.place (x=275, y=0)
month_var = IntVar (מסגרת_כניסה)
year_var = IntVar (מסגרת_כניסה)
קבל את החודש הנוכחי, השנה והגדר אותם למשתנה IntVar(). השתמש בווידג'ט Spinbox כדי לציין טווח של ערכים למשתמש. הגדר את טווח הערכים שה-Spinbox יכיל, את הרוחב, את הערך הנוכחי שהוא צריך להחזיק וסגנונות הגופנים. מקם את הקופסאות כראוי.
current_month = date.today().month
current_year = date.today().year
month_var.set (current_month)
year_var.set (שנה_נוכחית)month_box = Spinbox (מסגרת_כניסה, מ_=1, ל=12, רוחב="10",
textvariable=month_var, font=('אריאל','15'))year_box = Spinbox (מסגרת_כניסה, מ_=0000, ל=3000, רוחב="10",
textvariable=year_var, font=('אריאל','15'))
month_box.place (x=130, y=5)
year_box.place (x=360, y=5)
הכריז על שדה טקסט וקבע את חלון האב שלו, רוחב, גובה, סגנון גופן, סגנון הנפשה תלת-ממדית ורוחב הגבול. ארגן את ווידג'ט הטקסט והכריז על שלושה לחצנים להצגה, איפוס וסגירת החלון. הכפתורים מכילים מאפיין צבע רקע נוסף ומאפיין פקודה.
באמצעות מאפיין הפקודה, אתה יכול להגדיר את הפונקציה שהיא אמורה לבצע לאחר לחיצה. מקם את הכפתורים בשורה אחת עם רווח גדול בין כל אחד מהם.
calendar_field = טקסט (מסגרת_תוצאה, רוחב =20, גובה=8,
גופן=("שָׁלִיחַ", "18"), relief=RIDGE, borderwidth=2)calendar_field.pack()
display_button = לחצן (button_frame, text="לְהַצִיג", bg="#A020F0",
fg="#E0FFFF", command=printCalendar, font=('אריאל', '15'))reset_button = לחצן (button_frame, text="אִתחוּל", bg="#A020F0",
fg="#E0FFFF", command=reset, font=('אריאל','15'))close_button = כפתור (button_frame, text="סגור", bg="#A020F0",
fg="#E0FFFF", command=close, font=('אריאל','15'))
display_button.place (x=55, y=0)
reset_button.place (x=210, y=0)
close_button.place (x=350, y=0)
ה mainloop() הפונקציה אומרת לפייתון להפעיל את לולאת האירועים של Tkinter ולהקשיב לאירועים (כגון לחיצות כפתורים) עד לסגירת החלון.
guiWindow.mainloop()
חבר את כל הקוד כדי לראות את לוח השנה של ה-GUI שלך בפעולה.
פלט לדוגמה של לוח השנה של GUI
בהפעלת התוכנית מעל התוכנית מציגה חלון עם החודש והתאריך הנוכחיים. הלחצן איפוס מציג את אותו מסך כאשר לוחצים עליו.
עם הגדרת החודש ל-3 והשנה ל-2000, התוכנית מציגה את לוח השנה של מרץ 2000. בלחיצה על כפתור הסגור, התוכנית הורסת את החלון ומפסיקה את ביצועו.
קח על עצמך כמה פרויקטי GUI למתחילים באמצעות Python
בניית יישומי GUI מעולם לא הייתה קלה כל כך. מודול Tkinter של Python מספק ווידג'טים מועילים רבים שתוכל להתאים אישית באופן מלא עם מעט מאוד קוד. יחד עם זה, אתה מקבל גישה למנהלי פריסה כגון חבילה, רשת ומקום למיקום אלמנטים לפי רצונך.
אתה יכול לבנות משחק בדיקת הקלדה, לוח צבעים, ממיר מטבעות או מחשבון כדי להתחיל. כיף לבנות יישומים אלה ויפתחו את כישורי התכנות שלך מונחה עצמים בקלות.