‡ المحتويات‡
فى هذا الجزء من الدرس سوف يتم شرح بعض الأمثلة البسيطة لبرامج مكتوبة بواسطة مكتبات WinForms.
مثال على تطبيق بمكتبات WinForms.
simple.py #!/usr/bin/ipy import clr clr.AddReference("System.Windows.Forms") from System.Windows.Forms import Application, Form class IForm(Form): def __init__(self): self.Text = 'Simple' self.Width = 250 self.Height = 200 self.CenterToScreen() Application.Run(IForm())
`هذا المثال يعرض نافذة صغيرة على الشاشة.
clr.AddReference("System.Windows.Forms")هنا أضفنا مرجعية لمكتبات WinForms.
class IForm(Form):فى مكتبات WinForms أى نافذة أو مربع حوارى هو عبارة عن From و هذه الأداة عبارة عن حاوى بسيط و الغرض منه عرض أدوات أخرى بداخله. قمنا بتوريث الفئة IForm من Form لذلك أصبحت هى نفسها From.
self.Text = 'Simple' self.Width = 250 self.Height = 200
النص (Text) و العرض (Width) و الإرتفاع (Height) هم خصائص الــForm فى السطر الأول سوف نعرض النص "Simple ” فى شريط العنوان و فى السطرين الآخرين سوف يتم تحجيم الForm
بحجم 200ْx250 بكسل.
self.CenterToScreen()هذه الطريقة تقوم بتوسيط النافذة فى منتصف الشاشة.
Application.Run(IForm())فى هذا السطر قمنا بتشغيل البرنامج..
Figure: Simple
Mono تعنى القرد فى الأسبانية لذلك لو لم نغير الأيكونة فهناك أيكونة افتراضىة و هو رأس القرد و فى المثال القادم سوف يتم شرح كيفية تغيير الأيكونة.
icon.py #!/usr/bin/ipy import clr import sys clr.AddReference("System.Windows.Forms") clr.AddReference("System.Drawing") from System.Windows.Forms import Application, Form from System.Drawing import Icon class IForm(Form): def __init__(self): self.Text = 'Icon' self.Width = 250 self.Height = 200 try: self.Icon = Icon("web.ico") except Exception, e: print e.msg sys.exit(1) self.CenterToScreen() Application.Run(IForm())
الكود السابق بيعرض الأيكونة فى الركن الأيسر من النافذة و عموماً الأيكونة هى التى تمثل النافذة فى شريط المهام و أيضاً تظهر على شريط التحكم .
clr.AddReference("System.Drawing")
فى الكود السابق أضفنا مرجعية للوحدة Sysrem.Drawing لأن كائن الأيكونة (Icon Object) موجود فى هذه الوحدة.
try: self.Icon = Icon("web.ico") except Exception, e: print e.msg sys.exit(1)
من الأفضل وضح كل أكواد الإدخال و الإخراج بين الكلمات المحجوزة try/except لتحاشى الأخطاء و أيضاً لا بد من وجود ملف الأيكونة فى نفس ملف العمل الموجود به الاسكربت الذى يحتوى على الكود.
Figure: Icon
التليمح عبارة عن مستطيل يظهر و يعرض وصف بسيط عن عمل الأداة فى التطبيق عندما يثبت المستخدم مؤشر الفأرة على الأداة لفترة بسيطة.
tooltips.py #!/usr/bin/ipy import clr clr.AddReference("System.Windows.Forms") clr.AddReference("System.Drawing") from System.Windows.Forms import Application, Form from System.Windows.Forms import Button, ToolTip from System.Drawing import Point, Size class IForm(Form): def __init__(self): self.Text = 'Tooltips' self.CenterToScreen() self.Size = Size(200, 150) tooltip = ToolTip() tooltip.SetToolTip(self, "This is a Form") button = Button() button.Parent = self button.Text = "Button" button.Location = Point(50, 70) tooltip.SetToolTip(button, "This is a Button") Application.Run(IForm())
فى الكود السابق أنشأنا تلميح لكل من نافذة و زر.
tooltip = ToolTip()هنا أنشأنا كائن تلميح و سوف نستخدمه لعمل تلميح لكل من النافذة و الزر
tooltip.SetToolTip(self, "This is a Form")هنا قمنا بعمل تلميح للفورم.
tooltip.SetToolTip(button, "This is a Button")و هنا للزر.
button = Button() button.Parent = self button.Text = "Button" button.Location = Point(50, 70)
لاحظ عند إنشاء أداة الزر الخاصية Parent هى حاوى هذا الزر حيث سيظهر و الخاصية Text هى النص الذى سيظهر على الزر أما الخاصية Location فهى تقوم بتحديد موقع الزر على النافذة و فى المثال كان موقع الزر فى الإحداثيات س=30 و ص=70 (بكسل) بالنسبة للنافذة.
Figure: Tooltips
فى المثال الأخير تكلمنا عن أداة الزر .
button.py #!/usr/bin/ipy import clr clr.AddReference("System.Windows.Forms") clr.AddReference("System.Drawing") from System.Windows.Forms import Application, Form, Button from System.Drawing import Size, Point class IForm(Form): def __init__(self): self.Text = 'Button' self.CenterToScreen() self.Size = Size(200, 150) btn = Button() btn.Parent = self btn.Text = "Quit" btn.Location = Point(50, 50) btn.Click += self.OnClick btn.MouseEnter += self.OnEnter def OnClick(self, sender, args): self.Close() def OnEnter(self, sender, args): print "button entered" Application.Run(IForm())
عموماً برمجية الواجهات الرسومية بنتحكم فيها عن طريق الأحداث و فى المثال السابق قمنا بعرض زر داخل حاوى Form و الزر سوف يستجيب لحدثين هما النقر Click و دخول المؤشر على الزر MouseEnter.
btn.Click += self.OnClickالسطر السابق من الكود ربطنا مرر الحدث بالحدث Click و لذلك عند النقر على الزر بيتم استدعاء الدالةOnClick().
btn.MouseEnter += self.OnEnterعندما نمرر مؤشر الفأرة على الزر فإن الحدث MouseEnter يعمل , و بالتالى سوف يستدعى الدالة OnEnter().
def OnClick(self, sender, args): self.Close()
الطريقة السابقة سوف تغلق التطبيق.
def OnEnter(self, sender, args): print "button entered"
عند مرور مؤشر الفأرة على الزر سوف يتم طباعة الجملة "button entered” داخل شاشة الطرفية (سطر الأوامر).
أخيراً فى هذا الجزأ من الدرس تم شرح بعض الأمثلة لنبدأ فى البرمجة الرسومية بمكتبات WinForms.
‡ المحتويات‡