
آموزش برنامه نویسی با QT و QML
آموزش برنامه نویسی با QT و QML یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی آموزش پایه ی QT Quick است که با نام اصلی Qt Quick Fundamentals از شرکت Pluralsight منتشر شده است.
کیوت (QT) چیست؟
کیوت (QT) یک فریم ورک برای ساخت و توسعه ی برنامه های cross-platform می باشد. برنامه های cross-platform برنامه هایی هستند که بدون کمترین و حتی گاهی هیچ تغییری در کد ها، می توانند در پلت فرم های مختلف از جمله ویندوز، مک، لینوکس اجرا شوند. در حال حاضر کیوت (QT) توسط کمپانی QT که بخشی از Digia می باشد مدیریت می گردد. علاوه بر این، از آنجایی که ماهیت کیوت (QT) متن باز (Open Source) است، برنامه نویسان و توسعه دهندگان سرتاسر دنیا برای توسعه ی بیشتر این فریم ورک تلاش می کنند. ضمناً توصیه می کنیم که از آموزش رایگان برنامه نویسی کیوت QT قدم به قدم نیز استفاده کنید.
قابلیت های کیوت (QT)
کیوت (QT) اغلب برای ساخت برنامه هایی که واسط کاربری گرافیکی (GUI) دارند استفاده می شود. اما ساخت برنامه های کنسول و سرویس ها نیز با استفاده از کیوت (QT) قابل انجام است. یکی از برنامه هایی که به صورت غیرگرافیکی توسط کیوت (QT) طراحی و ساخته شده است Cutelyst می باشد که یک فریم ورک وب است.
نکته ی دیگر اینکه کیوت (QT) از کتابخانه های سی پلاس پلاس و با اضافه کردن گسترش (Extension) های دیگر از قبیل singal ها و slot ها استفاده می کند. این دو مورد ذکر شده، عملیات کار با Event ها را در برنامه ساده تر می کنند. کیوت (QT) از کامپایلرهای متفاوتی از قبیل GCC و یا حتی ویژوال استادیو استفاده می کند.

با استفاده از Language Binding می توان کیوت (QT) را زبان های دیگر نیز استفاده کرد. علاوه بر این، جالب است بدانید که برنامه های ساخته شده با کیوت (QT) بر روی پلت فرم های دسکتاپ از قبیل ویندوز، مک و لینوکس و همچنین پلت فرم های موبایل قابل اجرا هستند. نکته ی آخر اینکه قابلیت کار با بانک های اطلاعاتی SQL، کار با XML و JSON، نوشتن برنامه های multithread (چند نخی) و عملیات کار با شبکه در کیوت (QT) قابل انجام است.
QT Quick یا همان QML چیست؟
علاوه بر این، زبان QT Quick و یا همان QML به عنوان یک زبان Declarative ساخت واسط کاربری برنامه ها رو در کیوت (QT) بسیار ساده تر کرده است.

در واقع، QT Quick به مانند XAML در برنامه های WPF عمل می کند. با استفاده از QML امکان ساخت برنامه های موبایل در QT فراهم شد.
ساخت رابطهای QML با Componentها و ورودی کاربر
در Qt Quick، رابط کاربری با استفاده از عناصر QML تعریف میشود و آشنایی با Syntax این زبان برای ساخت Componentهای قابل استفاده مجدد ضروری است. آموزش Qt Quick Fundamentals ساختار Typeها، Attributeها و امکاناتی مانند Qt Global را بررسی میکند و سپس سراغ Visual Typeهایی مانند Rectangle میرود. همچنین ساخت یک Component با چیدمان عمودی و استفاده از منابع JavaScript در کنار Qt.Include از موضوعات آموزشی است. این مباحث به برنامهنوینده کمک میکنند عناصر رابط را به بخشهای کوچکتر تقسیم کند و منطق و ظاهر هر بخش را متناسب با نیاز برنامه سازماندهی کند.
تعامل با کاربر تنها به نمایش عناصر گرافیکی محدود نیست؛ برنامه باید بتواند کلیک ماوس، فشار کلید و جابهجایی تمرکز را نیز مدیریت کند. در این آموزش، Mouse Area، کلیدهای ماوس، KeyNavigation و Focus Scope بررسی میشوند تا رفتار عناصر هنگام تعامل قابل کنترل باشد. برای نمونه، در یک فرم چندفیلدی میتوان ترتیب حرکت میان ورودیها را با صفحهکلید مشخص کرد و تعیین کرد کدام عنصر امکان دریافت تمرکز را دارد. این موضوع هنگام طراحی رابطهایی که باید هم با ماوس و هم با صفحهکلید قابل استفاده باشند، اهمیت عملی پیدا میکند.
کنترل چیدمان، انیمیشن و نمایش دادهها در Qt Quick
قرار دادن عناصر در موقعیت مناسب یکی از بخشهای مهم طراحی رابط در QML است. این آموزش به Positionerها و روشهای چیدمان میپردازد تا بتوانید محل قرارگیری اجزای رابط را بدون تعیین دستی تمام مختصات مدیریت کنید. سپس Transformها برای تغییر ویژگیهایی مانند چرخش یا مقیاس عناصر مطرح میشوند و Transition و Animation امکان تعریف تغییرات دیداری در پاسخ به رویدادها یا تغییر وضعیت را فراهم میکنند. آشنایی با کنترل انیمیشنها به شما کمک میکند حرکت عناصر را هدفمند طراحی کنید و از انیمیشنهایی که با رفتار مورد انتظار رابط هماهنگ نیستند، جلوگیری کنید.
هنگامی که برنامه باید مجموعهای از دادهها را نمایش دهد، مدلسازی داده و نحوه ارائه آن در رابط اهمیت بیشتری پیدا میکند. فصل Modelها، Viewها و Delegateها در Qt Quick Fundamentals به این بخش اختصاص دارد و درسهایی درباره تزئینات ListView نیز ارائه میشود. با استفاده از این مفاهیم، میتوان دادهها را از قالب نمایش آنها جدا کرد و برای هر ردیف یا آیتم، ظاهر متناسبی ساخت. مباحث Dialogها نیز به طراحی پنجرههای تعاملی برای دریافت ورودی یا نمایش پیام کمک میکنند؛ قابلیتی که در فرمها و جریانهای کاری مبتنی بر رابط گرافیکی کاربرد دارد.
سرفصل مطالب آموزش ویدئویی برنامه نویسی QT و QML
فصل اول: بررسی کلی
- نگاه کلی به QML مزایا و معایب پیش نیاز ها
فصل دوم: Syntax دستورات QML
- نحو دستورات QML شامل Type ها، Attribute ها و شی QT Global
- نحو دستورات QML شامل ساخت اشیا و Component ها
- گسترش برنامه ی Hello World
- ساخت یک فیلد عمودی به عنوان یک Component
- رفع یک مشکل معمول در کار با Component ها
- معرفی شی Item
- کار با Rectangle
- کار با Text
- کار با Image
- کار با BorderImage و AnimationImage و Screen
- استفاده از جاوا اسکریپت برای مقدار دادن به Property ها
- وارد کردن ریسورس های جاوا اسکریپت در فایل های QML
- وارد کردن ریسورس ها از فایل جاوا اسکریپت و استفاده از Qt.Include
- حوزه ی توابع
- کار با Qt.binding
- کار با Mouse Area و کلید های موس
- کار با درگ و دراپ با موس
- کار با پروپرتی Keys
- کار با پروپرتی KeyNavigation
- وارد کردن داده های متنی
- کار با Validator ها
- معرفی و کار با Focus Scope
- واردن کردن کنترل های Qt Quick
- کار با Anchor
- کار با Positioner ها
- کار با Layout ها
- کار کردن با Flow
- کار با Transform ها
- کار با Animation ها
- کار با Easing ها
- کنترل کردن انیمیشن ها
- کار با State ها
- کار با ListModel و ListView
- کار با ListView Decoration ها
- کار با ListView Orientation ها
- معرفی و کار با Repeater
- کار با XMLListModel و XPath
- معرفی و استفاده عملی از SplitView و StatusBar
- کار با دیالوگ ها
- کار با Menu و ToolBar و Action ها
- کار با File Dialog
- کار با Font Dialog و Color Dialog
- کار با Message Dialog
- کار با Custom Dialog ها
- رسم و رسومات کد نویسی در QML







