Tkinter הוא ערכת כלים ממשק משתמש גרפי (GUI) שעליך לנסות אם ברצונך לחקור את כוחו של Python ביצירת יישומי שולחן עבודה.

כאן נסתכל על היסודות של מודול ה- GUI של Tkinter.

התקנת Tkinter

בדרך כלל, אינך צריך להתקין tkinter בנפרד אם התקנת גרסה מאוחרת יותר של Python, החל מ- Python 3. ייתכן שהספריה לא עובדת עם גרסאות פיתון ישנות. זוהי בעיה נפוצה עבור משתמשי מקינטוש ו- Linux, מכיוון שמערכות הפעלה אלה מגיעות בדרך כלל עם גרסאות ישנות יותר של פייתון כברירת מחדל.

באופן כללי, להשתמש ב- tkinter מודול, וודא שאתה מוריד ומתקין את הגרסה התואמת האחרונה של Python במחשב שלך מהפקיד הרשמי python.org אתר אינטרנט.

אם אתה משתמש ב- Mac, לחלופין, אתה יכול להוריד את הגרסה האחרונה של ActiveTcl, א tkinter מהדר מ ActiveState.

כיצד להשתמש ב- Tkinter

Tkinter תלוי במובנה שלו TK מעמד. וזה עוטף את כל האירועים בתוך ממשק המשתמש ב- mainloop. לפיכך, ה mainloop עטיפה עושה את שלך tkinter הפעלת קוד.

כדי להתחיל איתו tkinter:

מ tkinter ייבוא ​​Tk
Tk (). Mainloop ()

הפעלת הקוד למעלה מסובבת ריק tkinter מִסגֶרֶת.

מאפייני ההתאמה האישית של Tkinter, לעומת זאת, נמצאים ביישומונים המובנים שלה.

instagram viewer

כדי להשתמש ביישומונים אלה, אתה יכול לייבא אותם מ tkinter על ידי החלפה מ tkinter ייבוא ​​Tk עם:

מייבוא ​​tkinter *
t = Tk ()
t.mainloop ()

אתה יכול גם להתאים את גודל החלון באמצעות גֵאוֹמֶטרִיָה ולאחר מכן ציין כותרת באמצעות כותרת יישומון של tkinter:

t = Tk ()
t.geometry ("600x600")
t.title ("מדריך Tk")
t.mainloop ()

Tkinter מאפשר לך לכתוב טקסטים פשוטים ישירות ל- GUI באמצעות ה- תווית יישומון:

t = Tk ()
תווית (t, text = "מדריך MUO Tkinter"). רשת ()
t.mainloop ()

ה רֶשֶׁת() השיטה, לעומת זאת, היא חלופה ל חבילה() שיטה. זה מדביק את הווידג'טים שלך לממשק המשתמש, והופך אותם לגלויים.

אתה יכול גם לציין גופן עבור שלך תווית טֶקסט:

t = Tk ()
תווית (t, text = "MUO Tkinter tutorial", font = (60)). Grid ()
t.mainloop ()

לחצנים הם מהווידג'טים הנפוצים ביותר ב- tkinter. ואתה יכול להוסיף את הכפתורים הניתנים ללחיצה לממשק המשתמש שלך באמצעות יישומוני הלחצן המובנים השונים.

כך תוכל להוסיף כפתור ראשי לממשק המשתמש שלך באמצעות לַחְצָן יישומון:

t = Tk ()
כפתור (t, טקסט = "ניתן ללחיצה", bg = "שחור", fg = "לבן"). רשת ()
t.mainloop ()

ה bg ו fg מילות מפתח מתארות את צבע הרקע של הכפתור ואת צבע הטקסט שבתוכו בהתאמה.

ניתן גם להתאים את ממד הכפתור על ידי הכללת ה- גוֹבַה ו רוֹחַב פרמטרים:

t = Tk ()
כפתור (t, טקסט = "ניתן ללחיצה", bg = "שחור", fg = "לבן", גובה = "2", רוחב = "10"). רשת ()
t.mainloop ()

הנה הפלט לכך:

ואם אתה רוצה להפוך את הכפתור למושך יותר מבחינה ויזואלית, אתה יכול לכלול א הֲקָלָה מילת מפתח ואז התאם את רוחב הגבול שלה:

t = Tk ()
כפתור (t, טקסט = "ניתן ללחיצה", bg = "כחול", fg = "לבן",
גובה = 2, רוחב = 10, תבליט = RAISED, רוחב גבול = 6). רשת ()
t.mainloop ()

וזה נראה כך:

החלף מוּרָם עם שָׁטוּחַ לראות איך זה עובר.

אתה יכול להוסיף כמה כפתורים שתרצה. אך היזהר להימנע מחפיפה של תוכן.

כדי למנוע חפיפה, תוכל לציין את מיקום השורה והעמודה עבור כל כפתור:

t = Tk ()
כפתור (t, טקסט = 1, bg = "שחור", fg = "לבן"). רשת (שורה = 1, עמודה = 1)
כפתור (t, טקסט = 2, bg = "שחור", fg = "לבן"). רשת (שורה = 2, עמודה = 1)
כפתור (t, טקסט = 3, bg = "שחור", fg = "לבן"). רשת (שורה = 3, עמודה = 1)
כפתור (t, טקסט = 4, bg = "שחור", fg = "לבן"). רשת (שורה = 4, עמודה = 1)
t.mainloop ()

אופציונלי פקודה מילת המפתח, לעומת זאת, מוסיפה אירועים ל- לַחְצָן יישומון. בעיקרו של דבר, הוא מעגן פונקציה אופציונלית המטפלת באירועים מסוימים כשלוחצים על כפתור.

הקוד שלמטה, למשל, מכפיל את הערך של כל כפתור ב 6 כשאתה לוחץ עליו. וזה מבוסס על פונקציה שהוגדרה מראש:

לחצן def (r):
r = 6 * r
תווית (t, טקסט = r, גופן = (60)). רשת (שורה = 5, עמודה = 2)
t = Tk ()
כפתור (t, טקסט = 1, bg = "שחור", fg = "לבן", רוחב = 10, גובה = 2,
פקודה = lambda: לחיצה על כפתור (1)). רשת (שורה = 1, עמודה = 1, pady = 6)
כפתור (t, טקסט = 2, bg = "שחור", fg = "לבן", רוחב = 10,
פקודה = lambda: לחיצה על הלחצן (2)). רשת (שורה = 2, עמודה = 1, pady = 6)
כפתור (t, טקסט = 3, bg = "שחור", fg = "לבן", רוחב = 10,
פקודה = lambda: לחיצה על הכפתור (3)). רשת (שורה = 3, עמודה = 1, pady = 6)
כפתור (t, טקסט = 4, bg = "שחור", fg = "לבן", רוחב = 10,
פקודה = lambda: לחיצה על כפתור (4)). רשת (שורה = 4, עמודה = 1, pady = 6)
t.mainloop ()

בקוד לעיל, לחצן כפתור מטפל באירוע הכפל. ה לַחְצָן widget ואז מצביע על המטפל באירוע זה באמצעות אנונימי למבדה פוּנקצִיָה.

ואם אתה מודאג מה- מרופד מילת מפתח, היא מפרידה באופן ברור בין כל כפתורים לאורך השורה. החלפת זה ב- פדקס מפריד בין הכפתורים לאורך העמודה. ותוכלו להשתמש בשתי מילות המפתח בו זמנית כדי להפריד בין הכפתורים בשני הצירים כרצונכם.

עם זאת, אינך רוצה להמציא את הגלגל מחדש עבור כל כפתור כפי שעשית בקוד הקודם. זה מאט את זמן הביצוע, בנוסף לכך שהקוד שלך קשה לקריאה ולהצטמצם.

אבל אתה יכול השתמש בלולאה עבור כדי למנוע חזרה זו.

אז הנה גרסה קצרה וטובה יותר של הקוד הנ"ל:

לחצן def (r):
r = 6 * r
תווית (t, טקסט = r, גופן = (60)). רשת (שורה = 5, עמודה = 2)
t = Tk ()
a = [1, 4, 6, 7]
עבור אני ב:
j = lambda y = i: לחצן לחצן (y)
כפתור (t, טקסט = i, bg = "שחור", fg = "לבן", רוחב = 10, גובה = 2,
פקודה = j). רשת (שורה = i, עמודה = 1, pady = 6)
t.mainloop ()

כפתורי תפריט וכפתורי סימון

בואו ונחקור את כוחו של ל לולאה כדי להוסיף לחצני תפריט לממשק המשתמש שלך:

מייבוא ​​tkinter *
t = Tk ()
buttons = ["קבצים", "לוח מחוונים", "תפריט", "הגדרות", "עזרה"]
m = 0
עבור אני בטווח (len (כפתורים)):
# קבל כל טקסט במערך הכפתורים באמצעות אינדקס רשימה כאשר m גדל.
# אז תן לעמודה לגדול ב -1 לאורך המערך:

כפתור תפריט (t, טקסט = כפתורים [m], bg = "כחול", fg = "לבן"). רשת (שורה = 5, עמודה = i)
m + = 1
t.mainloop ()

הוספת לחצני סימון לממשק המשתמש שלך היא די קלה גם כן:

t = Tk ()
לחצן הסימון (t, text = "בחר אפשרות"). רשת ()
t.mainloop ()

אל תהסס להכפיל את כפתור הסימון באמצעות ל לולאה, כמו שעשינו קודם.

ה תַפרִיט יישומון מאפשר לך לעצב תפריטים נפתחים הניתנים ללחיצה tkinter.

כאמור קודם, tkinter מציע אפשרויות יישומון רבות. ואתה תשתמש בחלק מהם בעת תכנון התפריט הנפתח שלך.

להלן חלק מאפשרויות הווידג'ט הנפוצות שתיתקל בהן בעת ​​ביצוע תפריט נפתח:

  • add_cascade: הוא מציג תווית תפריט ומדביק אותו במקום שהוא שייך.
  • add_separator: הוא תוחם את תפריטי המשנה ומקבץ אותם לתפריטי משנה עליונים ותחתונים.
  • add_command: כאן אתה נותן שם לתפריט המשנה שלך. בסופו של דבר, הוא מקבל טיעון פקודה שבו אתה יכול לציין מטפל באירועים.

הנה דוגמה נפתחת המשתמשת בשלוש האפשרויות הבאות:

מייבוא ​​tkinter *
t = Tk ()
fileOptions = ["חדש", "פתוח", "שמור", "שמור בשם"]
fileOptionsAfterseparator = ["ייבוא", "ייצא", "יציאה"]
viewOptions = ["Transform", "Edit", "Create"]
menuBar = תפריט (t)
file = Menu (menuBar, tearoff = 0)
עבור אני בקובץ אפשרויות:
file.add_command (label = i, command = None)
file.add_separator ()
עבור i in fileOptionsAfterseparator:
file.add_command (label = i, command = None)
menuBar.add_cascade (label = "File", menu = file)
תצוגה = תפריט (MenuBar, tearoff = 0)
עבור אני בתצוגה אפשרויות:
View.add_command (label = i, command = None)
menuBar.add_cascade (label = "View", menu = View)
t.config (menu = menuBar)
t.mainloop ()

ראה איך זה נראה:

תפריט אפשרויות Tkinter

An תפריט אפשרויות, לא כמו ה תַפרִיט נפתח, מעביר את התווית שלה לאפשרות שנבחרה.

למרות שאתה יכול לציין ערך ברירת מחדל של תווית עבור תפריט אפשרויות, אין לו תווית כברירת מחדל.

קָשׁוּר: רעיונות לפרויקט פיתון המתאימים למתחילים

כך ליצור תפריט אפשרויות ב tkinter:

t = Tk ()
תפריט = StringVar () # הגדר את סוג המשתנה של האפשרויות
Omenu.set ("MUO") # ציין ערך ברירת מחדל עבור סמל התפריט
OptionMenu (t, Omenu, "MUO", "Amazon", "Tutorial"). Grid ()
t.mainloop ()

בנה אפליקציית שולחן עבודה רב פעמית עם Tkinter

Tkinter מציע מגוון של תכונות המסייעות לך ליצור יישומי שולחן עבודה GUI אינטראקטיביים. למרות שלא ייתכן שיש בו הרבה תכונות ייפוי גמישות כמו כמה מודולי GUI אחרים של פייתון, זה עדיין כלי שימושי שכדאי לחקור. ובעוד שהדוגמאות כאן מציגות רק כמה ממושגי היסוד, tkinter מציע תכונות מתקדמות יותר שתוכלו לנסות.

עם זאת, תוכלו לבנות מחשבון שולחני GUI, ליצור עורך טקסט מיני או אפילו ליצור אפליקציית Desktop GUI לניהול המלאים שלכם. אם אתה רוצה לפרוש כנפיים ולהפוך למג'ור GUI לשולחן העבודה, אתה יכול אפילו לבדוק מודולי GUI אחרים של Python.

אימייל
GUI? מהו ממשק משתמש גרפי?

האם אתה משתמש ב- GUI? רוב הסיכויים שיש לך כי אתה משתמש בהם בכל יום ויום.

קרא הבא

נושאים קשורים
  • תִכנוּת
  • פִּיתוֹן
על הסופר
אידובו אומיסולה (88 מאמרים פורסמו)

Idowu הוא נלהב מכל דבר חכם טק ופרודוקטיביות. בזמנו הפנוי הוא משחק בקידוד ועובר ללוח השחמט כשמשעמם לו, אבל הוא גם אוהב להתנתק מהשגרה מדי פעם. התשוקה שלו להראות לאנשים את הדרך סביב הטכנולוגיה המודרנית מניע אותו לכתוב יותר.

עוד מאידובו אומיסולה

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחץ כאן להרשמה