Home  Contents

First steps in PyGTK

فى هذه الجزئية سنخطو خطواتنا الأولى مع PyGTK

Simple example

اول كود بسيط للغاية

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

فى هذا المثال سنعرض ايكون للتطبيق، معظم مديرى النوافذ يعرضو الأيكون فى اعلى يسار شريط العنوان وايضا فى شريط المهام

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 فى المجلد الحالى)


Icon

Figure: Icon



Buttons

فى المثال التالى سنحسن معرفتنا ب 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 لكل ويدجت-


Buttons

Figure: Buttons



Tooltip

ال 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 تقوم بالعمل




Tooltips

Figure: Tooltips



فى هذا الفصل انشأ نا برامجنا الأولى

Home ‡ Contents ‡ Top of Page