هذة دورة تمهيدة لل GTK+ . هذه الدورة موجهة لمستخدمين لغة البرمجه ( c ) . لقد تم اعدادها واختبارها علي بيئة نظام التشغيل ( LINUX ) . هذة الدوره مناسبة للمبتدئين والمتوسطين من المبرمجين.
مكتبة
ال 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+ نفسها تعتمد علي المكتبات التاليه وتحتاجها لكي تعمل بشكل صحيح .
Glib
Pango
ATK
GDK
GdkPixbuf
w:st="on"style="font-size: 10pt; font-family: Verdana;"Cairo
مكتبة ال 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+ .
لكي تترجم تطبيقات ال 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
اما هذا الامر فهو مثيل لسابقه ولكن هذا الامر يعرض قائمه بالمكتبات .
GTK+ / Gnome application development