Home  Contents

Introduction to GTK+

About this tutorial

هذة دورة تمهيدة لل GTK+ . هذه الدورة موجهة لمستخدمين لغة البرمجه ( c )   . لقد تم اعدادها واختبارها علي بيئة نظام التشغيل ( LINUX ) .   هذة الدوره مناسبة للمبتدئين والمتوسطين من المبرمجين.

GTK+

مكتبة ال GTK+  هي مكتبة لإنشاء الواجهات الرسوميه . هذه المكتبة تم انشائها بلغة البرمجه ( C )  . مكتبة ال GTK+ ايضا يمكن تسميتها ب ال GTMP Toolkit .   لانه  في الحقيقه هذه المكتبة قد تم انشائها وقت تطوير برنامج ال GIMP   للتلاعب والتعديل في الصور . ومنذ هذه الحين , مكتبة ال GTK+  قد اصبحت واحده من اشهر الادوات ( TOOLKITS )    في بيئة نظام التشغيل LINUX/BSD (unix)   . والان , معظم البرامج ذات الوجهات الرسوميه في عالم المصادر المفتوحه تنشأ باستخدام ال Qt  او ال GTK+  . مكتبة ال GTK+  هي واجهة تطوير برامج كائنيه (object oriented application programming interface)  . تم انشاء النظام الكائني باستخدام النظام الكائني Glib  , وهو اساس مكتبة ال GTK+  . ال (GObject)  ايضا يسمح بانشاء رابطات لغويه لمختلف انواع اللغات الاخري. الرابطات اللغويه توجد ايضا للغات التاليه (c++,python,perl,java,c#)  ولغات اخري.

مكتبة ال GTK+  هي مكتبة وسائط متعدة الاستخدامات . حيث انها تقدم انواع مختلفه من انواع البيانات , وسائط النصوص , تسمح بالتبليغ عن الاخطاء , تسجل الرسائل , تعمل مع ال (threads)    ولها خصائص ذات فائده كبيره اخري

مكتبى ال GTK+ نفسها تعتمد علي المكتبات التاليه وتحتاجها لكي تعمل بشكل صحيح .

 

مكتبة ال GTK+  هي مكتبة وسائط متعدة الاستخدامات . حيث انها تقدم انواع مختلفه من انواع البيانات , ووسائط النصوص ,و تسمح بالتبليغ عن الاخطاء ,و تسجل الرسائل ,و تعمل مع ال (threads)    ولها خصائص ذات فائده كبيره اخري . مكتبة ال PANGO  هي مكتبة تسمح باأقلمة البرامج لكي تتأقلم مع الاختلافات اللغويه (internationalization)  . ال ATK  هي  ادوات ولوجيه . هذه الادوات تساعد الاشخاص علي العمل علي نفس جهاز الكومبيوتر . ال GDK  هي غلاف حول المستويات المنخفضه للرسوم والدوال النوافذيه (windowing function)  المقدمه من النظام التحتي للرسوم . في نظام اللينكس ال GDK  تقع بين ال X server  وال GTK+  . مؤخرا , الكثير من خصائصها واعمالها تم تفويضها لمكتبة Cairo . مكتبة الGdkPixbuf   هي  مجموعة ادوت لتحميل الصور وال pixel buffer  للتلاعب والتعديل بها .  مكتبة Cairo  هي مكتبة لإنشاء عوامل رسوميه ثانئية الابعدا (2D vector)    . وقد تم ادماجها في مكتبة GTK+  منذ الاصدار 2.8  .

بيئات سطح الكتب الرسوميه gnome , XFce  قد تم انشائهم باستخدام مكتبة ال GTK+  . SWT  و  wxWidgets  هي frameworks  معروفه وتسخدم ال GTK+  . وايضا البرامج المعروفه مثل Firefox او Inkscape  تستخدم GTK+  .



Compiling GTK+ applications

لكي تترجم تطبيقات ال GTK+ لدينا اداة مناسبة لذلك تدعي pkg-config  . هذه ال pkg-config  تقوم بإرجاع بيانات عن بيانات المكتبات الموجوده. ببساطه اذا كنا نريد مكتبه معينه وكنا نريد بيانات تلك المكتبه ,  سوف تقدم لنا المكتبات المطلوبه لعمل تلك المكتبه والملفات التي سوف يتم طلبها ويتم عمل include  لها . برنامج ال pkg-config  يرجع معلومات حول الحزم المطلوبه  من بيانات بينيه خاصه به.

 gcc -o simple simple.c `pkg-config --libs --cflags gtk+-2.0`

في المثال السابق عرضنا كيف يمكنك ترجمة برنامج بسيط . يتكون شفره برمجيه في ملف واحد اسمه simple.c .

$ pkg-config --cflags gtk+-2.0
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 
-I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 
-I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12  

الامر السابق يعرض كل الملفات  الضروريه التي سوف يتم ادماجها (include)  في الشفره المصدريه التي تستخدم  المكتبة GTK+  كما هو واضح من الامر .

$ pkg-config --libs gtk+-2.0
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 
-lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr 
-lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 
-lgmodule-2.0 -ldl -lglib-2.0 

اما هذا الامر فهو مثيل لسابقه ولكن هذا الامر يعرض قائمه بالمكتبات .

Sources