View Full Version : ساخت فرم اختصاصی در Qt
Arman_Betadin
چهارشنبه 13 خرداد 1394, 19:28 عصر
سلام به دوستان عزیز.
بنده امروز اومدم سمت Qt و دیدم که در واقع مزایای زیادی داره !! از همه نظر !!!!
حالا سواله من اینه که چطور میتونم یک فرمه اختصاصی طراحی کنم ؟؟
مثلا نرم افزاره محبوب تلگرام با کیوت نوشته شده .
تلگرام نخسه دسکتاب :
http://parsiup.com/files/139403/f1cbc31c3554a8aed44795ed66bd2a60.png
http://parsiup.com/files/139403/1b770eb4be4e0ff9fd41f3567abab92b.png
و نرم افزاره لاین :
http://parsiup.com/files/139403/44ae06c318b07446f9a35400228baf69.png
خب اون قسمت هایی که مشخص کردم رو چطوری میتونم بسازم ؟؟؟
و کلا خواسته باشم یه فرم به این شکل طراحی کنم چطور میتونم ؟؟؟
ممنون ممنون میشم پاسخ بدید /.....
chikar
چهارشنبه 13 خرداد 1394, 20:10 عصر
سلام
باید پنجره سفارشی بسازی، با دستور زیر می تونید، پنجره ات رو سفارشی کنی.
this->setWindowFlags(Qt::FramelessWindowHint);
اما کد بالا یه مشکلی داره و اون این هست که دیگه نه می تونی پنجره ت رو resize کنی و نه Move!!
من یه کلاس آماده برات می ذارم که این کار رو برات می کنه(یعنی حاشیه دورت رو حذف می کنه و قابلیت resize و move هم به پنجره ات می ده)
دانلود کلاس (http://chikar.persiangig.com/my_qt/frameless_class.rar/dl)
نحوه استفادش هم به شکل زیر هست :
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
NcFramelessHelper fh;
fh.activateOn(&w);
w.show();
return a.exec();
}
خب حالا کاری که باید بکنی این هست که از طریق Layouts و یا ResizeEvent مقادیری که تو عکس مشخص کردی رو از طریق عکس های آماده تو نت و، یا خودت با فتوشاپ بسازی و یا از طریق paintEvent بسازی و ست کنی!
بعد هم با دستور setStyleSheet می تونی پنجره ات رو یه رنگ و لعاب اساسی بهش بدی!
ببین دوست عزیز برای انجام این کار به صورت اصولی باید بحث Event ها ، لایه ها و کار با ویجت ها رو خوب بلد باشی، پس اول کمی در این زمینه کار کن، بعد برو سراغ این مباحث!:لبخند:، که نیازی هم به استفاده از کلاس های آماده مثل کلاس فوق نداشته باشی!
یا علی
Arman_Betadin
چهارشنبه 13 خرداد 1394, 23:15 عصر
بسیار ممنونم از شما دوست عزیز....
بنده عرض کردم که تازه کار هستم .
اگر منبع کامل فارسی در رابطه با Qt سراغ دارید ، ارائه بدید تا بنده استفاده کنم !!!
در ضمن عید شما هم مبارک .
chikar
پنج شنبه 14 خرداد 1394, 00:34 صبح
با فارسی برای شروع بد نیست، ولی باید لاتین جلو برید، همه چی لاتین هست و فکر نمی کنم با وجود گستردگی کیوت و کلاس ها و مباحثش، منبع کامل حتی تو منابع لاتین باشه چه برسه به فارسی و تنها منبع کامل اسناد رسمی کیوت هست!!
منبع اصلی، اسناد رسمی کیوت(لیست کلاس ها) (http://doc.qt.io/qt-5/classes.html)
لینک های زیر کتاب pdf هست می تونید دانلود کنید :
لینک اول (http://s5.picofile.com/file/8121317268/Qt_Development_ver1.pdf.html)
لینک دوم (http://ketabesabz.com/book/19113/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D8%AA%D8%A7%D8%A8-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-C-%D8%A8%D8%A7-Qt)
لینک سوم (http://zanjanlug.org/projects/documents/farid/QT_in_7_step.pdf)
ویدئو فارسی (http://qtips.ir/1391/05/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%DB%8C%D9%88%D8%AA%DB%8C-%D8%A7%D8%B2-%D8%B5%D9%81%D8%B1-%D8%B5%D9%81%D8%B1-%D8%AC%D9%85%D8%B9-%D8%A8%D9%86%D8%AF%DB%8C/)
بد نیست علاوه بر نسخه فعلی کیوت یعنی 5.4 ، نسخه 4.8از کیوت رو دانلود کنید، چون به همراهش یک بخش به اسم Example and Demo داره، که یه سری مثال خیلی خوب به صورت آماده با کدشون هست
تو این سایت (http://qt-apps.org/) هم می تونید سورس برنامه های ساخته شده با کیوت رو دانلود کنید
کتاب و ویدئو لاتین هم هست، جستجو کنید پیدا میکنید
راجع به نصب کیوت و این جور بحث ها هم تو تاپیک اعلان همین سایت هست، جاهای دیگه هم هست سرچ کنید
عید شما هم مبارک موفق باشید
کامبیز اسدزاده
پنج شنبه 14 خرداد 1394, 20:06 عصر
سلام
به یه نکته ای اشاره کنم یوقتی به اشتباه مسیر رو انتخاب نکنید...
این مثال هایی که زدین telegram و ... اینا با QML طراحی شده اند در رابطه با QML تحقیق کنید.
chikar
پنج شنبه 14 خرداد 1394, 21:57 عصر
سلام
به یه نکته ای اشاره کنم یوقتی به اشتباه مسیر رو انتخاب نکنید...
این مثال هایی که زدین telegram و ... اینا با QML طراحی شده اند در رابطه با QML تحقیق کنید.
با کیوت هم که می شه این کار رو انجام داد، آخه QML منابع لاتین هم براش موجود نیست چه برسه به فارسی، بعد هم QML به نظرم بیشتر برای ساخت انیمیشن خوب هست، تا رابط کاربری!!نه اینکه نشه، می شه رابط کاربری فوق العاده باش ساخت، ولی با کیوت راحت تر می شه، دقیقا همون کار رو کرد(چون کار کردن با QML در عین سادگی دستوراتش به دلیل کمبود منابع، سخت تر هست)
یه سوال : به نظرتون استقبال کمتری نسبت به Qt از QML نشده؟ QML منابع لاتینش هم خیلی خیلی کم هست(فقط رو اسناد رسمیش می تونی حساب کنی که به نظرم کافی نیست) و حتی تو فروم های برنامه نویسی مطرح دنیا هم، ندیدم ازش استقبال شده باشه(به دلیل سوال های اندک راجع به مباحث QML تو این فروم ها)!!!
negative60
پنج شنبه 14 خرداد 1394, 23:07 عصر
البته فکر کنم تم تلگرام و وايبر و لاين با استفاده از Widget و با استفاده از QStyle (http://doc.qt.io/qt-5/qstyle.html) باشه (نمونه (http://www.informit.com/articles/article.aspx?p=1405556&seqNum=2)) به اين دليل که فرم و آبجکتهای QML در ويندوز اسم کلاس اونها(که از روی هندل به دست مياد) Qt5QWindowGLOwnDCIcon هست اما در Widget اسم کلاس فرم و اجزاء Qt5QWindowIcon هست در هر صورت برای اطمينان ميتونيد سورس تلگرام (https://github.com/telegramdesktop/tdesktop) رو ببينيد
در مورد منابع آموزش QML تو يوتوب کانال آقای Joseph Mills (https://www.youtube.com/channel/UCzkAk08QdVFd1CmwWQBD3Sw) رو دنبال کنيد آموزش های خيلی خوبی داده حتی اگر زبانتون هم مثل من ضعيف باشه متوجه ميشيد
chikar
جمعه 15 خرداد 1394, 23:26 عصر
در مورد منابع آموزش QML تو يوتوب کانال آقای Joseph Mills (https://www.youtube.com/channel/UCzkAk08QdVFd1CmwWQBD3Sw) رو دنبال کنيد آموزش های خيلی خوبی داده حتی اگر زبانتون هم مثل من ضعيف باشه متوجه ميشيد
شما خودت QML رو با ویدئو جلو میری؟ آخه سوالاتی که پیش میاد یک هزارمش هم با ویدئو دیدن حل نمی شه، می شه؟
شما برای یاد گیری اصولی QML چه روشی رو پیشنهاد می کنید؟
negative60
شنبه 16 خرداد 1394, 02:28 صبح
بهتره اول آموزش ها رو از 1 تا جايی که ادامه داده دنبال کنيد بعد ببينيد سؤالی پيش خواهد اومد
من چند وقته QML رو ادامه ندادم اما تا جايی که نياز داشتم در سطح معمول استفاده کردم مشکلی نبود
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.