ספריית tkinter/מחשבון/שלב 2: תיבת טקסט

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי

תיבת טקסט[עריכה]

עכשיו ניצור תיבת טקסט:

הוסיפו את הקוד הבא איפה שהוא לפני ()screen.mainloop:

txt = tk.Entry(screen)
txt.pack()

והריצו את התכנית.

אפשר לכתוב בתיבת הטקסט מה שרוצים אבל כלום לא יקרה כי לא הגדרנו שיקרה שום דבר.


()tk.Entry היא פונקציית תיבת הטקסט של tk.

שמנו בתיבת הטקסט שיוך ל-screen כדי שכשנפעיל אותה היא תופעל במסך screen.

לבסוף ציירנו אותה במסך על ידי ()pack.

()pack היא פונקציית ערימה ב-tk שעורמת את התיבה או הכפתור שלנו בערימה הכללית בלי צורך בהגדרת מיקום מדויק.


הבעיה היא שלפעמים נרצה לשלוט באופן מדויק על המיקום של תיבת הטקסט, איך נעשה את זה?


יצירת תיבת טקסט במיקום מדויק[עריכה]

אם נרצה לסדר את התיבה במקום מסוים במסך נשתמש ב - ()grid שמאפשר לנו שליטה על המיקום המדויק באמצעות רשת של אורך ורוחב.

הרשת מסודרת כך שהנקודה השמאלית העליונה היא 0,0.

זו הרשת התאורטית
2,0 1,0 0,0
2,1 1,1 0,1
2,2 1,2 0,2

כך למשל נחליף את () txt.pack

ב-

txt.grid(row=3,column=3)

הריצו את התכנית.

מה קרה?







אין שינוי אבל למה?

ההסבר הוא שכדי להשתמש במשבצות של הרשת(grid=רשת) צריך קודם להגדיר משבצות במסך.

הוסיפו את הקוד הבא מיד אחרי יצירת המסך והריצו:

for i in range(5):

    screen.rowconfigure(i, weight=1)

    screen.columnconfigure(i, weight=1)

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

שימו לב שהמשקל (weight) של כל משבצת צריך להיות לכל הפחות אחד.
נרחיב עליו בהמשך.

ככה זה עובד
i=1
i=2
i=3

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


שימו לב:

אם החלון לא יהיה גדול לא תראו שום שינוי אל תשכחו להגדיל את החלון.





זהו סיימנו להגדיר את תיבת הטקסט שלנו עכשיו אפשר להתקדם ל: שלב 3: כפתורים