التخطي إلى المحتوى الرئيسي

Label and Button

تقنية وبرمجة
بواسطة تقنية وبرمجة · نُشر:
آخر تحديث: · تعليق واحد

from tkinter import Tk, Frame, Label, Button root = Tk() frame1 = Frame(root) frame1.pack() label1 = Label(frame1, text="hello aosus community") label1.pack() button1 = Button(frame1, text="submit") button1.pack()

root.mainloop()

















نلاحظ بدأنا باستيراد المكونات التي سنستخدمها في بناء هذه الواجهة البسيطة

from tkinter import Tk, Frame, Label, Button

ثم عرفنا النافذة الرئيسية والتي أيضا ستقوم بإنشاء tcl interpreter (مفسر للغة tcl) وتعرض لنا الواجهة الرئيسية التي ستحمل كل الواجهات التي سنستخدمها.
وهي عبارة عن instance من الكلاس Tk والذي تحدثنا عنه منذ قليل.

root = Tk()

ثم بعد ذلك عرفنا ثلاثة مكونات في الواجهة؛ Frame, Label, Button
حيث مررنا ال root لل Frame لكي يكون أب له. كما مررنا ال Frame إلى ال Button وال Label لأنه سيكون أب لهما.
نلاحظ أيضا أننا قد مررنا text إلى الكلاس الخاص بالزر والنص وهذا عبارة عن النص الذي يظهرفي النافذة. وسنشرحه لاحقا مع المدخلات الأخرى الممكنة.

# root is the parent of frame1frame1 = Frame(root)frame1.pack()# frame1 is the parent of label1label1 = Label(frame1, text="hello aosus community")label1.pack()# frame1 is also the parent of button1button1 = Button(frame1, text="submit")button1.pack()

قد تتسائل ما هي وظيفة الميثود pack ولم استخدمتها. هذه الميثود تعتبر من أحد طرق التحكم بمواضع العناصر داخل الواجهة. ومن المهم جدا استعمالها على ال widgets لأنها أيضا المسؤولة عن ظهور العناصر في الواجهة، وبدون استعمالها على ال widget فلن تظهر في الواجهة.
يتحكم بال packer (.pack()) بأماكن العناصر داخل الأب. في الوضع الطبيعي تكون العناصر فوق بعضها (يعني متتالية وليست منطبقة فوقها) ويمكن التحكم بمكان ظهور العنصر عبر تمرير side

label1 = Label(frame1, text="hello aosus community")label1.pack(side="left")button1 = Button(frame1, text="submit")button1.pack(side="right")









الـ side تأخذ أربع قيم محتملة 'left''right''top''bottom'.
إذا لم تعطها قيمة فستأخذ افتراضيا 'top' أي أعلى. كما تأخذ pack عدة مدخلات أخرى سنغطيها في وقت لاحق إن شاء الله.

2- Label

ال Label هو أحد عناصر الواجهة، ويستخدم لملء جزء من الواجهة بالنص، كما يمكن استخدامه أيضًا في إظهار الصور.

# pip install Pillow
from tkinter import Tk, Labelfrom PIL import ImageTk, Image root = Tk()image1 = Image.open("black-cat-on-top-of-car.jpg")image1 = image1.resize((300, 300))image_ob = ImageTk.PhotoImage(image1) cat_label = Label(root, image=image_ob) cat_label.pack() text_label = Label(root, text="a cute black cat", background="black", foreground="white",underline=2, padx=4, pady=4, height=2, )text_label.pack()root.mainloop()



ونستعرض بعض المدخلات الممكنة لل Label
المدخلالوصف
textوهذا هو النص الذي سيظهر في الواجهة
bg, backgroundكلاهما يقوم بتغيير لون خلفية النص ويمكن استعمال أيهما
fg, foregroundوهذان لتغيير لون النص نفسه ويمكن استعمال أيهما
fontوهذا لتغيير الخط المستخدم في كتابة النص على الواجهة
imageوهذا لعرض صورة في الواجهة مكان ال label
padxوهذا لإضافة مسافة قبل وبعد النص المراد بداخل ال label وتكون على الجانبين وتكون أيضا بداخل ال label أي تأخذ الألوان المقدمة لخلفية ال label
padyنفس السابق لكن تضيف المسافة أعلى وأسفل ال label بدلا من يمن ويسار
textvariableوهذا إذا ما كنت تريد إضافة نص إلى ال label بشكل تفاعلي أي مثلا عند ضغط زر او ما شابه وسنشرحها لاحقا باستفاضة
underlineويمكن هذا المدخل من إضافة خط أسفل الحرف الذي ستمرر له (الإندكس) مثلا underline=5 أي الحرف السادس
widthلتحديد العرض الخاص بال label وهذا بناء على عدد الأحرف وليس ال pixel أي أن النص لن يسع أكثر من الاحرف الذي تكتبها
heightوهذا لتحديد الطول العمودي الخاص بال label

هذه بعض الخيارات ويوجد المزيد لكن لا يسعنا ذكرها في هذه المقالة.

3- Button

ال Button -أي زر- تمكنك من إنشاء واجهة تفاعلية، حيث يمكنك إضافة حدث لهذا الزر وتغيير الواجهة/الكود بناء على هذا الحدث.
مثلا عند الضغط على زر معين تستطيع تغيير النص. أو تسجيل المستخدم عند ملئه المدخلات وغيرها استخدامات.

تتشارك ال Button مع ال Label في عدة خيارات منها bg fg font height width underline padx pady
image text في حالة ما أردت إظهار صورة في الزر بدلا من النص يمكنك استعمال خيار image لدينا أيضا عدة خيارات أخرى في ال Button نستعرضها في ما يلي:

المدخلالوصف
activebackgroundعن طريق هذا الخيار يمكنك التحكم بلون خلفية الزر عند النقر عليه أو لمسه إذا ما كان بالهاتف
activeforegroundعن طريق هذا الخيار يمكنك التحكم بلون النص داخل الزر عند النقر عليه أو لمسه
bdويمكنك هذا الخيار من تحديد حجم الإطار (border) أو الحواف الخاصة بالزر وقيمته الإفتراضية 2
stateويمكنك هذا الخيار من تحديد حالة الزر حيث يمكن جعل الزر غير ممكن الضغط عليه واستخدامه إلا عند انطباق شروط معينة
commandيمكنك هذا الخيار من إعطاء الزر دالة أو ميثود يتم استدعاءها عند الضغط على الزر
highlightcolorهذا الخيار يمكنك من تحديد لون الزر عند عمل focus له أي تركيز في الواجهة

تعليقات 1

  1. تقنية وبرمجة
    # 28 سبتمبر 2023 في 4:00 ص
    تعلم برمجة الواجهات التطبيقات سطح المكتب للكمبيوتر بالغة بايثون و مكتبته الغنية عن التعريف tkinter

إرسال تعليق

Cancel