به نام خدا
در این پست، میخواهم به طور خلاصه و مختصر به معرفی فریم فرک (framework) کیوت ( یا همان Qt ) بپردازم پس با من همراه باشید.
قبلا هم توی پست مربوط به معرفی فریم ورک GTK هم گفته بودم که من عاشق رابط کاربری یا همان GUI برنامه ها هستم و همیشه هر نرم افزاری که می بینم، کنجکاوم که بدونم رابط کاربری اون با چه زبانی و با چه فریم ورکی ساخته شده و همیشه مجذوب GUI برنامه ها بودم. حالا در این پست می خوام یکی از زیباترین و پر استفاده ترین فریم ورک های محبوب رو بهتون معرفی کنم به نام کیوت، یا همان Qt که نرم افزار های بیشماری باهاش ساخته شده و با این فریم ورک می تونید نرم افزار های بسیار زیبا بسازید.
تعریف فریم ورک:
خب تعریف فریم ورک (framework) رو قبلا در پست مربوط به GTK هم گفتیم و اینجا باز یه مرور می کنیم. فریم ورک به کدهایی گفته میشو که به یک زبان خاص (مثلا c یا ++c یا جاوا و ...) و برای اهداف خاصی نوشته می شوند. فریم ورک ها باعث می شن که کار توسعه ی یک برنامه برای برنامه نویس ها راحت تر بشه، زیرا که از کدهای موجود در فریم ورک استفاده میکنن و این کار باعث میشه سرعت توسعه ی نرم افزار بیشتر بشه.
برای ایجاد رابط کاربری یا همون GUI نرم افزارها ( یا به قول خودمون، ظاهر برنامه ها ), از فریم ورک های مختلفی استفاده میشه. قبلا یکی از معروف ترین اونهارو معرفی کردم به نام gtk و حالا یکی دیگر از معروف ترین اونها که اوپن سورس هم هست, فریم ورک QT می باشد (بخوانید کیوت) که اولین بار توسط توسط شرکت TrollTech توسه یافت.
Qt چیست؟
Qt یک فریمورک مدرن و چندسکویی (Cross-Platform) است که به برنامهنویسان این امکان را میدهد که نرمافزارهای گرافیکی خود را با سرعت و کارایی بالا توسعه دهند. این فریمورک اولین بار توسط شرکت Trolltech توسعه یافت و امروزه توسط QT Group مدیریت میشود. قدرت اصلی Qt در انعطافپذیری آن نهفته است؛ چه بخواهید یک برنامه کوچک و ساده بسازید، چه یک نرمافزار پیچیده و حرفهای، Qt همراه شماست. خیلی خلاصه وار بخوام بگم، کیوت شامل یک مجموعه غنی از ویجت های زیبا هست (widget) که شما می توانید با استفاده از اونها، رابط کاربری نرم افزار خودتون رو بسازید. همانطور که در عکس بالا هم مشاهده می کنید، کیوت دارای انواع ویجت های زیبا هست مانند button، label، list view و سایر ویجت ها، و شما با استفاده از برنامه qt designer، به راحتی می تونید انواع مختلف ویجت ها رو روی یک فرم با موس ایجاد کنید و دیگه برای ساخت gui نیاز به کد نویسی نیست و اصلاحا با drag and drop به راحتی می تونید رابط کاربری نرم افزارتون رو به راحتی اب خوردن بسازید
نرم افزار های بسیار زیادی با کیوت نوشته شده، فقط یک مورد رو اشاره می کنم کافیه! کل دسکتاپ KDE که یکی از معروف ترین دسکتاپ های لینوکسی هست با کیوت ساخته شده و همچنین تمام نرم افزار های گرافیکی که تیم KDE توسعه داده همش با کیوت نوشته شده. فقط کافیه در گوگل سرچ کنید
چهار نکته ی مهم درباره QT
تمام نکاتی که در پست GTK گفتیم، درباره QT هم صادق هست!
1- کراس پلتفرم هست، ینی نرم افزاری که با کیوت ساخته بشه هم روی لینوکس، و هم مک و هم ویندوز قابل استفاده هست.
2- نکته ی مهمی دیگه ای که وجود داره اینه که شما میتونید ظاهر برنامه (یا همون رابط کاربری برنامه) رو با QT بسازید ولی سایر کد های برنامه رو به هر زبان دلخواهی بنویسید. دقیقا مثل GTK. برای مثال من میتونم یک ماشین حساب بنویسم و رابط کاربری برنامه رو با qt بسازم ولی سایر کد های مورد نیازم رو با پایتون بنویسم!! ینی یک برنامه گرافیکی که با پایتون نوشته شده ولی رابط کاربط کاربریش با qt درست شده!! جالب نیست؟ :) یا مثلا میتونم یه برنامه گرافیکی به زبان rust بنویسم و رابط کاربری برنامه رو با qt بسازم :)
این کار توسط لایبرری هایی که بهش اصطلاحا language bindings or Wrappers گفته میشه امکان پذیره و اجازه میده که شما از فریم ورک qt در هر زبان برنامه نویسی بتونید استفاده کنید.
3- میشه بدون کد نویسی و فقط بوسیله ی موس و drag & drop، رابط کاربری یک برنامه رو بوسیله ی qt ساخت
بـــــــله :) درست خوندید، کافیه شما از نرم افزار qt designer استفاده کنید و بدون حتی یک خط کد نویسی، یک UI پیشرفته برای نرم افزارتون درست کنید. در واقع وقتی شما در نرم افزار qt designer، یک فرم درست میکنید و روی این فرم ویجت های مختلف ( مثل textbox، label، و ...) میزارید، خود qt designer یک سری کد بصورت xml تولید میکنه و این کد ها بعدا توسط توابعی، بصورت runtime به کدهای پایتون یا سی پلاس پلاس یا جاوا یا rust تبدیل میشن. ساده تر بخوام بگم، شما میتونید GUI برنامه رو هم با کد نویسی بسازید، هم میتونید با فایل های xml بسازید.
4- تغییر تم برنامه های qt بوسیله ی CSS :)
احتمالا همه ی شما با CSS در طراحی وب اشنا هستید، جالبه بدونید که در نرم افزار هایی که با qt نوشته شدن هم میشه با استفاده از CSS ظاهر برنامه رو دست کاری کرد :)
این نشون دهنده قدرت فریم ورک qt هست.
خب، فک کنم مقاله ی خیلی کوتاهی بود ولی امیدوارم مفید باشه. برای کسب اطلاعات بیشتر هم میتونید در گوگل (و مخصوصا یوتوب) جستجو بکنید
در زیر هم به سایت اصلی QT رو میزارم
سایت اصلی پروژه QT (برای اطلاعات جامع تر، میتونید به سایت اصلی پروژه برید)