Qt (که کیوت تلفظ می شه) یک چارچوب توسعهی کاربردی هست. خلاصش یعنی همون framework خودمون. کیوت اغلب برای ساخت برنامههای GUI استفاده میشه که تو اینجور مواقع بهش Widget toolkit میگن، البته این به این معنی نیست که در ساخت برنامههای غیر GUI مانند برنامههای کنسول و سرورها استفاده نداره، بلکه داره!
از کیوت اکثرا به خاطر ساخت KDE (بزرگترین پروژه بازمتن)، اپرا، گوگل ارث، اسکایپ، Qtopia و Mathematica یاد میشه.
کیوت از ++C به همراه اکستنشنهای غیراستاندارد که با پیشپردازندهها پیادهسازی شده استفاده میکنه که به این طریق قبل از کامپایل، کد استاندارد تولید میشه. از کیوت میتونید در زبانهای برنامهنویسی دیگر که بایندینگش برای آنها موجود است مانند آدا، سیشارپ، جاوا، پاسکال، پرل، پیاچپی، روبی و پایتون استفاده کنید. و در نهایت مهمترین نکته اینکه، کیوت بر روی همه پلتفرمها اجرا میشه.
نصب بر روی لینوکس
پاشین برین تو اینجا و از یکی از آینهها دانلودش کنید. یادتون باشه که ما داریم از نسخه Qt/X11 استفاده میکنیم. حالا اون فایل رو که ممکنه اسمش با فایل ما فرق کنه با دستور ذیل (هه! یه دفعه با ادب شدم!) از حالت فشرده خارج کنید:
tar -zxf qt-x11-opensource-src-4.3.3.tar.gz
اصولا پروسهی نصب یه برنامه تو لینوکس به سه بخش زیر تقسیم میشه:
اول از همه با اجرای اسکریپت configure شروع میکنیم. این اسکریپت کتابخانه را برای نوع کامپیوتر ما پیکربندی میکند. به صورت پیشفرض کیوت در شاخهی /usr/local/Trolltech/Qt-4.3.3 نصب میشه که با پارامتر prefix- میشه اون رو تغییر بدیم (ولی ما که آزار نداریم این کار رو نمیکنیم). حواستون باشه که منظور از واژهی نصب در اینجا دو معنی داره. یکی به معنی کل پروسه (شامل سه مرحله) و دیگری به معنای «انتقال فایلها به شاخهی مورد نظر» که در واقع مرحله سوم هست. حالا برای انجام مرحله اول دستور زیر را وارد کنید:
./configure
حالا بهتون پیغامی نشون میده مبنی بر اینکه مجوز رو قبول میکنی یا نه. که اصولا بدون خوندن قبول میکنیم. ولی بی شوخی بعدا در مقالهای جداگانه ماجرای کیوت و دو مجوز GPL و QPL رو بررسی میکنیم.
انجام شدن کارهای این اسکریپت به چند دقیقه زمان نیاز داره. توصیه من بهتون صرف یک لیوان چای سبز و کمی مدیتیشن هست (برید حال کنید با ایده).
حالا نوبت مرحله ساخت هست. پس دستور زیر را وارد کنید:
make
مرحله ساخت چند ساعت طول میکشه پس می تونید یک پیتزا سفارش بدید و با طمانینه میل کنید یا اینقدر چایی بخورید که از 6-7 سوراختون چایی بزنه بیرون. پس بخورید و بیاشامید ولی اصراف نکنید.
در حین نصب حرارت پردازنده خیلی بالا میره. واسه اینکه حوصلتون سر نره میتونید دستور زیر رو توی یک ترمینال دیگه وارد کنید:
cat /proc/acpi/thermal_zone/THRM/temperature
خوب حالا نوبت میرسه به مرحله نصب. برای اینکار از دستور زیر استفاده کنید:
sudo make install
اگر sudo بر روی سیستمتون کار نمیکنه دستور زیر رو با اختیارات مدیر سیستم اجرا کنید:
make install
اگه فکر میکنید این دستور آنقدر طول خواهد کشید که باید سیرابی بار بگذارید، سخت در اشتباهید؛ برید دوباره چایی بخورید.
خوب حالا به عنوان آخرین کار باید متغیر سیستمی PATH رو تغییر بدید. برای اینکار دو دستور زیر را وارد کنید:
PATH=/usr/local/qt4/bin:$PATH
export PATH
اگه میخواید هر بار که وارد سیستم میشید این دستورات خود به خود اجرا شوند، دو دستور بالا رو به فایل profile. در شاخهی خانگی کاربر اضافه کنید.
نصب بر روی ویندوز
ویندوزیهایی که میخوان Qt نصب کنند و فکرمیکنند که نصب برنامه یعنی 4 تا next، خوب توجه کنند که میخوایم از روزمرگی و پوچی درشون بیاریم.
حواستون رو جمع کنید. یه بار تند و سریع میگم اگه نصب شد که شد اگه نشد خوب باید بشینیم و بررسی کنیم که مشکلش چیه! در کل جالبه که از نرمافزار آزاد میخواین رو windozd استفاده کنید ولی اینو یادتون باشه که اسم این نسخه Qt/Windows هست(نگی نگفتی!). حالا برید اینجا و فایل exe رو دانلود کنید. فایل اینستالر هنگام نصب به اینترنت وصل میشه و برنامه MinGW را که مجموعهای از کتابخانهها و برنامه gccی پورت شده به ویندوز است رو دریافت میکنه. حالا توسط خط فرمان به پوشهای که کیوت رو نصب کرده رفته و دستور زیر را برای پیکربندی اجرا کنید.
configure -platform win32-g++
شما مجبورید که برای نصب از پارامتر بالا استفاده کنید چون win32-msvc (ویژوال استادیو) در نسخهی متن باز پشتیبانی نمیشه (برای رفع ابهام اینجا رو نگاه کنید). مطمئن بشید که آدرس پوشهی bin در محل نصب MinGW رو به متغیر PATH از طریق System Properties > Advanced > Environment Variables اضافه کردهاید. حالا در داخل خط فرمان دستور زیر رو وارد کنید:
mingw32-make
این مرحله خیلی طول میکشه اما چون شما ویندوزی هستید بهتون نمیگم که چه کارایی میتونید حین نصب انجام بدید.
خوب حالا مرحله نصب تموم شده. در آخرین مرحله باید پوشه نصب (به طور مثال c:\qt\4.3.3\bin) را به روش گفته شده در بالا به متغیر محیطی PATH اضافه کنید.
Qt یک فریم ورک مولتی پلتفرم برای توسعه نرم افزار می باشد که اکثرا برای ایجاد برنامه هایی با رابط کاربری (GUI) مورد استفاده قرار می گیرد . اما پس از نسخه ۴ امکان ایجاد برنامه های متنی نیز فراهم شده است . بیشترین استفاده از کیوتی در رابط گرافیکی KDE بوده است که یکی از مهمترین محیط های گرافیکی لینوکس می باشد . نرم افزار های بسیاری چون Opera, Google Earth, Skype, Qtopia و ... نیز توسط این ابزار ایجاد گردیده اند . این ابزار توسط یک شرکت نروژی به نام Trolltech ایجاد گردیده و با سرعت بسیاری در حال توسعه می باشد .
زبان برنامه نویسی در Qt بصورت پیش فرض ++C می باشد . تقریبا این ابزار را می توان با محیط ++VC مقایسه نمود . اما امکان برنامه نویسی با زبانهای دیگر چون پایتون ، رابی ، PHP ، پرل ، پاسکال و حتی #C و جاوا نیز در Qt فراهم می باشد ! همانطور که گفته شد کیوتی تقریبا در اکثر سیستم عامل های موجود چون لینوکس ، ویندوز ، مک و سیستم های خاصی چون PDA ها و Smartphone ها قابل اجراست .
Qt از موتوری درونی و خاص خود برای ایجاد اشیا و پنجره ها استفاده می کند . بنابراین امکان اجرا بر روی چندین سیستم عامل و نیز استفاده از اشایی پیشرفته براحتی ممکن می باشد . در عین حال کیوتی در هر سیستم عامل برنامه هایی درست همانند ظاهر همان سیستم عامل یا اصطلاحا محلی (native) تولید می کند .
کیوتی اسمی کلی هست و شامل تمام ابزار و کتابخانه ها و طراح می شود . در حقیقت محیط و فریم ورک Qt شامل قسمت های مختلفی می باشد . هسته اصلی و داخلی آن شامل کتابخانه هایی بسیار گسترده در اکثرا زمینه های موجود چون پایگاه داده ، شبکه ، سیستم فایل ، اینترنت و ... می باشد . همچنین کیوتی شامل طراحی (Designer) گرافیکی و بسیار قدرتمند و ساده می باشد که برنامه نویسی و ایجاد پنجره ها را بسیار آسان و سریع قابل پیاده سازی می کند .
از مهمترین موارد و مزیت های کیوتی می توان به موارد زیر اشاره کرد :
کیوتی یک فریم ورک بسیار گسترده و غنی می باشد که شامل ویژگی و توانایی هاو ابزار های بسیاری می باشد که امکان ایجاد برنامه هایی سمت سرور و کلاینت با کارایی بسیار زیاد و مولتی پلتفرم را فراهم می آورد .
کتابخانه های (library) این فریم ورک که بالغ بر ۴۰۰ کتابخانه کامل به زبان ++C می باشد در حقیقت شالوده و پایه فریم ورک را تشکیل می دهد . این کتابخانه ها شامل مواردی چون کتابخانه های GUI ، پایگاه داده ، شبکه ، XML ، OpenGL درونی سازی شده ، بین المللی کردن (internationalization) و ... می باشد .
Qt Designer نام یک طراح گرافیکی بسیار قدرتمند می باشد که امکان ایجاد فرم ها و لایه ها بصورت سریع و آسان با استفاده از نما و گرافیکی مناسب را در اکثر سیستم عامل ها فراهم می کند .
Qt Linguist نام ابزار دیگری می باشد که امکان ترجمه و بین الملل سازی را بسیار راحتتر می کند . با استفاده از این ابزار کل سیستم لغات و نوشته های برنامه بصورت جداگانه در فایلی ذخیره می گردند که امکان ترجمه آن بسیار راحت می باشد . بنابراین تیم اصلی فراغ ار مشکلات و سختی های کار زمان بری چون ترجمه به زبانهای مختلف وقت بیشتری بر روی توسعه برنامه صرف می کنند . و نیز امکان ترجمه برنامه برای کاربران معمولی که اطلاعات زیادی از روند توسعه و برنامه نویسی ندارند فراهم می شود .
همچنین کیوتی ویژگی های بسیار خوبی برای زبان فارسی و چینش راست به چپ فراهم می کند . این ویژگی از درونی ترین کلاس ها و هسته کیوتی فراهم می شود . بنابراین تمامی عناصر کاملا منتطبق با استاندارد های مورد نیاز بوده و بخوبی متون راست به چپ فارسی را نمایش می دهند . انتخاب و استفاده از این ویژگی هم بسیار آسان می باشد خیلی با حاله.
Qt Assistant نام یک مروگر فایل و مستندات می باشد که تغییر و استفاده مجدد از آن امکان پذیر می باشد . برنامه های نوشته شده با Qt می توانند از این ابزار برای نمایش مستندات خود استفاده کنند . بنابراین تهیه و توسعه مستندات برنامه ها بسیار سریعتر و آسان تر خواهد بود .
کیوتی بطور کامل مولتی پلتفرم می باشد . یعنی مستقل از سیستم عامل یا به عبارت دیگر امکان اجرا بر روی محدوده وسیعی از سیستم عامل ها . مطمئنا برنامه های نوشته شده با کیوتی هم مولتی پلتفرم خواهند بود ! چون برای اجرا فقط به کیوتی نیاز دارند . این ویژگی بسیار مهم و با ارزش می باشد . برای مثال برنامه نویس مجموعه ای از API و توابع و نحوه اجرای و استفاده از آنها را یاد می گیرد سپس در هر سیستم عاملی به راحتی می تواند برنامه نویسی کند !
کیوتی و ابزار های آن فعلا در پلتفرم های زیر در دسترس هستند :
Qt/X11 : این نسخه مخصوص سیستم عامل های مبتنی بر یونیکس (Unix) چون لینوکس ، سولاریس (Solaris) و HP-UX ، IRIX و بسیاری سیستم عامل مشتق شده دیگر می باشد .
Qt/Windows : این نسخه مخصوص سیستم عامل مایکروسافت می باشد و از ویندوز ۹۸ تا ویستا (Vista) قابل اجرا و استفاده می باشد .
Qt/Mac : این نسخه نیز مخصوص سیستم عامل مک (Mac OS X) می باشد .
Qtopia Core : این نسخه مخصوص قابل اجرا و استفاده در نسخه خاصی از لینوکس (Embedded Linux) است که می تواند در سخت افزار های خاص بجر کامپیوتر معمولی اجرا شود .
تمامی API ها و توابع موجود در این نسخه های مختلف بدون در نظر گرفتن سیتسم عامل و محیطی که در آن اجرا می شوند یکسان می باشد . برای مثال تمامی توابع و روشهای کار با فایل ها ، چند نخی (Threading) ، مدیریت پردازش ها (Process handling) ، پایگاه داده و ... دقیقا یکسان می باشند .
برنامه های نوشته شده با Qt در تمامی این پلتفرم ها دقیقا همانند یک برنامه معمولی و بومی آن محیط می باشد و از نظر ظاهر هیچ گونه فرقی با سایر برنامه ها ندارد . همچنین برنامه نوشته شده در یک محیط بدون هیچ تغییری بدون مشکل در بقیه پلتفرم ها قابل اجرا هستند . فقط باید در پلتفرم جدید برنامه نوشته شده را دوباره کامپایل و به فایل اجرایی تبدیل کرد . که بدیهی هست در مواقعی که کد و هسته اصلی برنامه با زبانی اسکریپتی چون پایتون نوشته شود حتی نیازی به کامپایل مجدد هم نیست ! و برنامه بصورت مستقیم در همه پلتفرم ها اجرا خواهد شد .
برنامه نویس کیوتی کافی است طرز کار یک تابع API (توابع مورد نیاز برای دسترسی به کتابخانه ها) را یاد بگیرد . سپس می تواند از آن تابع در همه پلتفرم ها استفاده کند . همچنین توسعه دهندگان کیوتی نهایت تلاش خود را برای حفط سهولت یادگیری و استفاده کرده اند . با توجه به اینکه کیوتی یک نرم افزار آزاد (OpenSource Qt) می باشد توسعه ان بسیار سرعتر و بیشتر مطابق با خواست مصرف کننده می باشد . همچنین این ابزار مستنداتی بسیار غنی و کامل به همراه گروهای و انجمن هایی فعال دارد که بسیار کمک کننده و مفید می باشد .
نرم افزار های تجاری و حرفه ای بسیاری در پلتفرم ها و با ابزار ها و کامپایلر های مختلفی با کیوتی نوشته شده است . بیش از ۴۵۰۰ شرکت معتبر برنامه نویسی در دنیا با استفاده از این ابزار برنامه های خود را تولید می کنند . بنابراین کاملا تست شده و اکثر مشکلات آن مشخص و برطرف شده است . همچنین تمامی موارد مورد نیاز نیز به ان اضافه شده است . و دوباره با توجه به اپن سورس بودن آن این امر بسیار احتتر بوده و هر کسی می تواند در توسعه آن سهیم باشد . برای مثال در سالهای گذشته هزینه بسیاری از طرف دولت برای فارسی سازی و بومی سازی آن و نیز ثبت این تغییرات در نشخه های اصلی کیوتی هزینه شده است ! البته تیم توسعه کیوتی بسیار سخت گیر می باشد و اجازه اضافه شدن هر کد یا تغییری را نمی دهند ! مگر اینکه کارایی و دلیل آن کاملا بحث شده و اثبات شده باشد .
کارایی و سرعت اجرای برنامه های نوشته شده با کیوتی نیز بسیار خوب و در حد برنامه های معمولی موجود در همان پلتفرم می باشد . برنامه های نوشته شده بدون هیچ واسطی اجرا شده و بصورت مستقیم از سخت افزار و منابع استفاده می کنند .
مهمترین نکته در باره لایسنس کیوتی این است که تمامی ابزار ها در دو لایسنس مختلف عرضه می شوند . یکی تجاری و دیگری غیر تجاری . بحث نرم افزار اپن سورس و ازاد و مزیت های آن که در روند توسعه و استفاده آز آن می گذارد و نیز مواردی چون سهولت ، قدرت ، تنوع ، امنیت و ... را به ارمغان می آورد نیازمند بحثی دیگر و مفصل است . اما از طرفی دیگر این لایسنس دوگانه کیوتی باعث بحث های بسیار بسیار زیاد شد . اما این دوگانه بودن لایسنس خود مزیتی مهم می باشد که هر لایسنس تضمین کننده دیگری هست !