معرفی +GTK
GTK+ یا GIMP toolkit کتابخانهای آزاد و متنباز شامل ابزارهای ویجت برای ساخت رابط گرافیکی کاربر (GUI) است که به زبان C نوشته شده. این کتابخانه در ابتدا به عنوان مجموعه ابزاری برای توسعه نرمافزار ویرایش تصویر گیمپ ساخته شد.
اما بعد از مدتی از پروژه گیمپ جدا شد و رفته رفته به یکی از ابزارهای محبوب ساخت رابط کاربری تبدیل شد و هم اکنون توسط بنیاد گنو نگهداری میشود. امروزه واسط کاربری بسیاری از نرمافزارهای متنباز و تجاری با استفاده از + GTK یا Qt ساخته میشوند. این کتابخانه در درجه اول لینوکس و سامانه پنجره X را هدف قرار داده، اما میتوان از آن بر روی بسترهای دیگر مانند ویندوز مایکروسافت و OS X هم استفاده کرد. همچنین +GTK قادر است با بسیاری از زبانهای برنامهنویسی از جمله ++ C، پایتون، پرل، جاوا، #C و… کار کند.
GTK+ برای طراحی رابط کاربری، ابزارکهای بسیاری مانند دکمهها، جعبه متن، چکباکس و … را در اختیار برنامهنویسان قرار میدهد که با استفاده از آنها میتوانید رابط کاربری گرافیکی کاملی برای نرمافزارهای خود طراحی کنید، همچنینGTK+ از یک ویژگی استایلدهی همانند CSS برای شخصیسازی ظاهری این ابزارکها پشتیبانی میکند که با استفاده از آن میتوانید هر یک از این ابزارکها را شخصیسازی کرده و رابط گرافیکی کاربری مختص خود را بسازید. میزکارهای گنوم و Xfce و بسیاری از نرمافزارهای مطرح از جمله ویرایشگر تصاویر گیمپ، مسنجر Pidgin، نرمافزار گرافیک برداری Inkscape و بسیاری دیگر با استفاده از +GTK ساخته شدهاند.
اجزای اصلی GTK+
در طول توسعه، +GTK به کتابخانههای مختلفی تقسیم شد و برخی کتابخانهها نیز به +GTK اضافه شدند که امروزه +GTK به آنها وابسته است. این کتابخانهها عبارتند از Cairo ،GdkPixbuf ،GDK ، ATK و Pango.
GLib کتابخانهای سطح پایین و چندسکویی است که به زبان C نوشته شده است و امکانات بسیاری را برای توسعه نرمافزار ارایه میدهد. این کتابخانه شامل قسمتهای غیرگرافیکی پروژه +GTK است که از آن جدا شده و به برنامهنویسان اجازه میدهد از توابع و عملکردهای غیرگرافیکی بدون وابسته بودن به کلGTK+ استفاده کنند.
تاریخچه
GTK+ در آغاز برای استفاده در نرمافزار گیمپ که نرمافزاری آزاد/متنباز برای ویرایش تصاویر است طراحی شد و از این رو GTK یا GIMP Toolkit نام گرفت و پس از مدتی به دلیل بهبودها و بهینهسازیهای انجام شده در GTK نام آن به +GTK تغییر کرد. برنامهنویسی GTK در سال ۱۹۹۶ توسط «اسپنسر کیمبال» و «پیتر ماتیس» آغاز شد و پس از حدود دو سال و در ۲۸ آوریل ۱۹۹۸ اولین نسخه پایدار آن تحت عنوان GTK 1.0 منتشر شد. برای این نسخه ۹۳ هزار خط کد به زبان C نوشته شده بود و شامل ابزارکهای اساسی مورد نیاز پروژه گیمپ بود. نسخه پایدار بعدی با شماره 2/1 در فوریه ۱۹۹۹ با اضافه شدن تعداد زیادی از ابزارکهای جدید منتشر شد و + GTK را به بستری مناسب برای توسعه نرمافزارها تبدیل کرد و دیگر گیمپ، محور توسعه GTK+ نبود. نسخه 2/1 همچنین اولین نسخ های بود که شامل یک کتابخانه مجزای GLib بود.
بعد از نگارشGTK+ نسخه 2/1، به یک چرخه طولانی توسعه وارد شد که در طی آن کارهای بسیاری به انجام رسید؛ پردازش متن به Pango سپرده شد که باعث شد زبانهای بینالمللی به خوبی پشتیبانی شوند. Object System توسعه و تعمیم یافت و با عنوان کتابخانه GObject زیر مجموعه کتابخانه GLib شد. مجموعه نگارشهای 2/0/GTK 0 به همراه خود، ویژگیهای جدیدی داشت. یک موتور پوسته جدید، دسترسیپذیری بهینه شده با استفاد از ATK ، انتقال کامل به یونیکد و استفاده از UTF-8 و تعدادی API های انعطافپذیر دیگر اضافه شدند و همچنین از نسخه 2/8 به بعد، کتابخانه گرافیکی Cairo برای ارایه تصاویر برداری (vector) مورد استفاده قرار گرفت.
در طی مدت سه سال پروژه گنوم مشتاقانه منتظر آماده شدن +GTK نسخه 2/0 بود و گنوم از نسخه 0/2 به صورت عمده از +GTK استفاده میکند. یکی از درسهای آموخته شده توسط گروه +GTK از چرخه توسعه 0/ این است که سعی کنید چرخههای توسعه و انتشار نسخههای پایدار کوتاهتر از ۹ تا ۱۲ ماه باشد. +GTK برای همه نسخههای 2.x به این هدف نرسید اما از نسخه 0/2 به بعد با موفقیت از افتادن در چرخههای چند ساله توسعه و برنامهنویسی اجتناب کرد.
در نگارش GTK 3.0.0 بازنگریهایی درباره مدیریت ورودیهای دستگاه صورت گرفت، طراحی قالبهای پوسته با دستور زبانی مشابه CSS پشتیبانی شد و توانایی دریافت اطلاعات از دیگر نرمافزاهای متنباز طراحی شده با + GTK نیز اضافه شد.
GTK+ و زبانهای برنامهنویسی
برای ایجاد اتصال بین +GTK که به زبان C نوشته شده و دیگر زبانهای برنامهنویسی، کتابخانههایی منتشر شدهاند که با ارایه یکسری توابع نقش واسط را میان زبان برنامهنویسی و کتابخانه +GTK بازی میکنند. این کتابخانهها به شما اجازه میدهند بدون استفاده از زبان برنامهنویسی دیگری کتابخانه +GTK را در کد خود مورد استفاده قرار دهید و به آسانی رابط کاربری نرمافزار خود را طراحی کنید.
کتابخانههای PyGTK و PyGObject برای زبان برنامهنویسی پایتون، PHP-GTK برای زبان، PHP کتابخانه gtkmm برای زبان ++C و به همین صورت برای بسیاری از زبانهای برنامهنویسی دیگر نیز کتابخانه واسط در دسترس است و به وسیله این کتابخانهها + GTK میتواند با بیش از ۳۰ زبان برنامهنویسی کار کند.
منبع: نشریه «سلام دنیا»، شماره دوم – نوشته میثم صالحیدرباره فرشید نوتاش حقیقت
همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرمافزارهای آزاد/ متنباز و سیستمعامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.
نوشتههای بیشتر از فرشید نوتاش حقیقتاین سایت از اکیسمت برای کاهش جفنگ استفاده میکند. درباره چگونگی پردازش دادههای دیدگاه خود بیشتر بدانید.
دیدگاهتان را بنویسید