فى هذه الجزئية سنخطو خطواتنا الأولى مع PyGTK
اول كود بسيط للغاية
center.py #!/usr/bin/python # ZetCode PyGTK tutorial # # This is a trivial PyGTK example # # author: jan bodnar # website: zetcode.com # last edited: February 2009 import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.connect("destroy", gtk.main_quit) self.set_size_request(250, 150) self.set_position(gtk.WIN_POS_CENTER) self.show() PyApp() gtk.main()
سننشئ نافذة بسيطة ونموضعها فى منتصف الشاشة
import gtkنستدعى وحدة gtk لإتاحة الكائنات اللازمة لإنشاء الواجهة
class PyApp(gtk.Window):تطبيقنا مبنى على الصف PyApp اللذى يرث gtk.Window
def __init__(self): super(PyApp, self).__init__()
المشيد، ينشئ تطبيقنا وايضا يستدعى المشيد للأب عن طريق super
self.connect("destroy", gtk.main_quit)نربط الإشارة destroy -تحدث عن الضغط على زر الإغلاق او Alt + F4 -للدالة main_quit .. يتم تدمير النافذة ولكن لم يتم انهاء التطبيق لذا نستدعى main_quit لإنهاء التطبيق بصورة كاملة
self.set_size_request(250, 150)نحدد مساحة النافذة
self.set_position(gtk.WIN_POS_CENTER)هذا السطر يضعها بالمنتصف
show()الطريقة show تعرض النافذة لأنها ليست ظاهرة بعد
PyApp() gtk.main()
ننشئ كائن من الصف PyApp ونبدأ حلقة gtk الأساسية عن طريق gtk.main
فى هذا المثال سنعرض ايكون للتطبيق، معظم مديرى النوافذ يعرضو الأيكون فى اعلى يسار شريط العنوان وايضا فى شريط المهام
icon.py #!/usr/bin/python # ZetCode PyGTK tutorial # # This example shows an icon # in the titlebar of the window # # author: jan bodnar # website: zetcode.com # last edited: February 2009 import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Icon") self.set_size_request(250, 150) self.set_position(gtk.WIN_POS_CENTER) try: self.set_icon_from_file("web.png") except Exception, e: print e.message sys.exit(1) self.connect("destroy", gtk.main_quit) self.show() PyApp() gtk.main()
هذا الكود يعرض ايكون للتطبيق
self.set_title("Icon")نحدد عنوان النافذة
self.set_icon_from_file("web.png")الطريقة set_icon_from_file تحدد الأيكون الخاصة بالنافذة ويتم تحميلها من مسار ما على القرص (هنا ملف web.png فى المجلد الحالى)
Figure: Icon
فى المثال التالى سنحسن معرفتنا ب PyGTK
buttons.py #!/usr/bin/python # ZetCode PyGTK tutorial # # This example shows four buttons # in various modes # # author: jan bodnar # website: zetcode.com # last edited: February 2009 import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Buttons") self.set_size_request(250, 200) self.set_position(gtk.WIN_POS_CENTER) btn1 = gtk.Button("Button") btn1.set_sensitive(False) btn2 = gtk.Button("Button") btn3 = gtk.Button(stock=gtk.STOCK_CLOSE) btn4 = gtk.Button("Button") btn4.set_size_request(80, 40) fixed = gtk.Fixed() fixed.put(btn1, 20, 30) fixed.put(btn2, 100, 30) fixed.put(btn3, 20, 80) fixed.put(btn4, 100, 80) self.connect("destroy", gtk.main_quit) self.add(fixed) self.show_all() PyApp() gtk.main()
ننشئ 4 ازرار على النافذة، سنرى الفرق بين الحاويات والأبناء وسنقوم بتغير بعض خصائصهم
btn1 = gtk.Button("Button")الزر Button هو ابن سيتم اضافته داخل حاوية
btn1.set_sensitive(False)نوقف عمل الزر "غير قابل للضغط"
btn3 = gtk.Button(stock=gtk.STOCK_CLOSE)نعرض صورة على مساحة الزر (gtk تأتى بمجموعة جاهزة)
btn4.set_size_request(80, 40)نعدل المساحة للزر
fixed = gtk.Fixed()fixed هى ويدجت غير ظاهر "حاوية" مهمته احتواء ويدجات اخرى
fixed.put(btn1, 20, 30) fixed.put(btn2, 100, 30) ...
نضع الأزرار فى الحاوية
self.add(fixed)نحدد الحاوية بأنها الحاوية الرئيسية للتطبيق
self.show_all()نستدعى الطريقة show_all لتقوم بعرض جميع الويدجات -او تستطيع استدعاء الطريقة show لكل ويدجت-
Figure: Buttons
ال tooltip هى تلميح على ويدجت فى التطبيقات يستخدم لتوفير معلومات مساعدة اضافية.
tooltips.py #!/usr/bin/python # ZetCode PyGTK tutorial # # This code shows a tooltip on # a window and a button # # author: jan bodnar # website: zetcode.com # last edited: February 2009 import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Tooltips") self.set_size_request(250, 200) self.set_position(gtk.WIN_POS_CENTER) self.connect("destroy", gtk.main_quit) self.fixed = gtk.Fixed() self.add(self.fixed) button = gtk.Button("Button") button.set_size_request(80, 35) self.fixed.put(button, 50, 50) self.set_tooltip_text("Window widget") button.set_tooltip_text("Button widget") self.show_all() PyApp() gtk.main()
فى مثالنا نضع تلميحا للنافذة وزر
self.set_tooltip_text("Window widget") button.set_tooltip_text("Button widget")
الطريقة set_tooltip_text تقوم بالعمل
Figure: Tooltips
فى هذا الفصل انشأ نا برامجنا الأولى
Home Contents Top of Page