# Native Code > برنامه نویسی با C > برنامه نویسی در محیط QT و هم خانواده هایش > آموزش: آموزش QML

## .:saeed:.

سلام دوستان عزیزم.
از امروز قصد دارم علاوه بر آموزش خود کیوتی به آموزش QML (Qt Meta-Object Language هم بپردازیم . QML یه زبان بر پایه جاوا اسکریپت هستش که کارطراحی user interface رو لذت بخش و راحت و انعطاف پذیر تر میکنه.اینکه user interface ما چه شکلی باشه و چکار بکنه. یکی از ویژگی های جذابش اینکه هسته برنامه رو از واسط کاربری اون جدا میکنه . 
هدف اصلی از استفاده اش طراحی واسط های کاربری برای موبایل هستش. ولی خوب برای Pc هم قابل استفاده هست . بهتون قول میدم از برنامه نویسی QML هم مثل Qt Programming لذت ببرین. خوب به زودی منتظر آموزش ها باشید . اگه نظری هم داری در ابتدای شروع بحث عنوان کنید . پیشنهادات و انتقادات شما آرزوی ماست

----------


## .:saeed:.

اینم تصاویری از کارهایی با QML . برای ترغیب اذهان عمومی

----------


## .:saeed:.

*به نام خدا*

چرا QML ؟
اول این موضوع رو بگم که QML در واقع یه زبان برنامه نویسی اسکریپتی است که در دل موضوعی به نام Qt Declarative قرار گرفته . ساختن محیط های کاربر پسند و محیط های زیبا که شامل انواع مولفه های زیبایی مثل انیمیشن و ... باشه با کلاس های فعلی ( جدای از QML ) در کیوتی میسر است ولی باید مراحل زیادی رو برای اونا طی کنید تا نتیجه های دلخواه برسین . اما QML یه زبان سطح بالا برای طراحی محیط برنامه شما است . به راحتی با اون میتونید محیط های بسیار زیبا در کیوتی طراحی کنید . در ضمن امکان ارتباط با سی پلاس پلاس هم هست یعنی شما به راحتی میتونید یه برنامه کامل داشته باشید.

خوب بهتره یه پروژه خیلی ساده با کیوتی QML شروع کنیم . Hello World.

*Hello World In QML*
خوب اولین کاری که باید انجام داد ساختن یه پروژه برای انجام کار دلخواهتون مثل قبل هست . برای این کار در محیط کریتور ctrl+n رو بزنید و از other application گزینه QML Applicatioin رو انتخاب کنید. درضمن ممکنه این گزینه در شاخه های دیگه باشه . احتمالا هیچ کار دیگه ای هم نیاز نیست انجام بدین و همین کافیه ! کد زیر براتون ایجاد میشه 

import Qt 4.7
Rectangle {    width: 200 
   height: 200
    Text {
        x: 66
        y: 93
        text: "Hello World"
    }
}


حال کافیه که ctrl+r رو بزنید تا کدتون اجر بشه و یه hello world ساده بهتون نمایش داده بشه.دستور اول چیزی شبیه به Include هستش . خیلی ساده برای داشتن حد اقل امکانات باید این خط رو ابتدای برنامه تون بنویسید.
در QML ما با ماهیتی به نام element ها یا ریزه ها !  :لبخند گشاده!: روبرو هستیم . این ریزه ها در واقع ساده ترین بخش های برنامه شما هستند. مثلا در بالا شما element مستطیل رو میبینید . برای رسم یه مستطیل در ک م ل شما از المان Rectangle استفاده میکنید. المان های دیگه هم داریم که به مرور با هم بررسی میکنیم. 
هر المانی در ک م ل چندین مشخصه یا property داره که برای مشخص کردن مقدار شون از قانون property : value استفاده میکنیم. مثلا ما برای این مستطیل عرض و ارتفاع 200 رو تعیین کردیم . 
المان ها میتونن تو در تو باشن . و یه المان چندین فرزند داشته باشه مثلا در اینجا مستطیل ما یه المان دیگه داره . بله المان Text المان دیگه ای که اینجا میبینیم و برای نمایش یه متن ایستا به کاربر هستش یه چیزی مثل QLabel . اما فرقی که کرد اینه که این المان در یه المان دیگه رفته . خوب تو کیوتی هم که خانواده نقش مهمی رو بازی میکنه :قهقهه:  این متن فرزند مستطیل یه مرحله قبلش ( از نظر بیرون رفتگی ) شد . اینجا هم مفهومی به نام فرزندی و پدری هست . المان Text هم ویژگی ای به نام text داره برای تعیین متن اون. در ضمن مختصات یه نقطه فرزند نسبت به پدرش سنجیده میشه یعنی نقطه صفر و صفر فرزند نقطه x , y پدر هستش.
فعلا خسته نباشید

----------


## m.soleimani

یه چیزی تو مایه‌های WPF تو سی‌شارپ قراره بشه دیگه درسته؟

----------


## حامد مصافی

> یه چیزی تو مایه‌های WPF تو سی‌شارپ قراره بشه دیگه درسته؟


 بله، تقریبا

----------


## glassysmart

سلام
ممنون از این آموزش
اگه یه لیست از چیز هایی که قرار بیان شوند را بیان کنید بقیه دوستان هم می توانند کمک کنند

----------


## .:saeed:.

سلام
میخواهیم از مقدمات بریم به سمت جلو . مثلا نحوه کشیدن المان ها ، نحوه نسبت دادن رنگ و gradient به هر المان . انمیشین دار کردن ایتم ها . state machine و ... تا برسیم به نحوه integrate با سی پلاس پلاس . اگه کسی قصد شرکت داره آموزش بعدی رو متناسب با قبلی بذاره یا قبلش به هر روشی یه هماهنگی بامن بکنه ( ایمیل یا پیام خصوصی ). پیشاپیش از همکاری ها ممنون

----------


## .:saeed:.

سلام باز هم این ترم های دانشگاهی شروع شد و سر همه دوستان شلوغ
خوب با توجه به مشکلاتی که برای درج آموزش مستقیم ( یعنی همه چی همینجا قرار داده بشه ) مثل مشکلات آپلود عکس ها  ،هایلات کدها و ... دوباره من برگشتم سر خونه اول که آموزش ها به صورت pdf باشه . برای همین منظور *یک pdf ده صفحه ای در مورد کلیه مقدمات کیو ام ال* آماده کردم ( البته خداییش براش خیلی زحمت کشیدم یه نگاهی بیندازید متوجه میشید ) که از لحاظ کیفی به نظرم خوب باشه


QtQuickPartA.zip

----------


## r00tkit

سعید اقا شما کار خیلی خوبی انجام می دین ولی این نکته رو داشته باشید که   چیز هایی که می نویسی یه تازه کار در حد زیر 5 دقیقه می تونه با نگاه کردن به Qt Assistan یا یه وبلاگی یاد بگیره 

و بهتره فقط اینجا اموزش باشه

----------


## .:saeed:.

شما اصلا به فایل نگاه انداختین یا همین جوری فرمودین . قبول دارم که Assistant کامله ولی آیا به نظرتون در مورد کیو ام ال هم که یه موضوع جدیدیه همین طوره . اگه جوابتون بله است خوب باید بگم که با سازندگان نظرتون تضاد داره . اگه میشه منظورتون رو واضح تر بگین.

----------


## ghasem.fattahpour

وقعا خیلی عالی بود.

----------


## complexcoding

دوستان منظورتون از Qt Assistan همون نرم افزار کیوت هست که توش برنامه می سازیم دیگه؟ یا یه نرم افزار جداست؟

----------


## حامد مصافی

خیر، Qt Assistant نرم‌افزار مرور راهنمای کیوت است.

----------


## AlgorithmX

پست بسته شد؟!! یا قصد ادامه دارید؟!! .. 67 ماه گذشته هاااا  :متفکر:

----------


## sanaderi

سلام دوستان و طرفداران کیوت می توانید به پروژه کیوت فارسی بپیوندید.
qt-project.ir
منتظر نظرات انتقادات وپیشنهادات شما هستیم...

----------

