PDA

View Full Version : مبتدی: نحوه استفاده از فرم طراحی شده در پروژه؟



one hacker alone
شنبه 13 اسفند 1390, 06:47 صبح
با یاد خدا
سلام دوستان
بنده با بکارگیری فرم طراحی شده در پروژه مشکل دارم
اول از همه به سراغ راهنمای کیوت رفتم و بعد تو اینترنت گشتم که ظاهرا کامل ترینش همون راهنمایی خود کیوت باشه اما متاسفانه من متوجه نمیشم و نتونستم کاری از پیش ببرم
اگه امکان داره دوستان به زبان ساده یه مختصر راهنمایی بکنن
تا جایی که من فهمیدم باید فایل رو در مسیر جاری پروژه بریزیم و توی فایل main اون رو include کنیم ظاهرا یه فایل سرایند هم باید با همین نام ساخته بشه تکلیف فایل widget.cpp و هدرفایلش چیه ؟ با اونا باید چکار کنیم
کلا چند فایل باید بسازیم و چند فایل حذف کنیم و چیا رو ویرایش کنیم؟
ممنون

mousamk
شنبه 13 اسفند 1390, 12:18 عصر
دوست عزیز شما اطلاعی ندادین که بدونیم پروژه و همچنین فرم رو به چه شکلی طراحی و اضافه میکنین. ولی من فرض میگیرم که به صورت دستی یا از IDEهای قدیمیتر مثل QDevelop و KDevelop و ... استفاده نمیکنین و از همون IDE مخصوص کیوت یعنی QtCreator استفاده میکنین.

توجه داشته باشین که شما اگه از راه درستش برین اصلا لازم نیست فایلی رو دستی بسازین. راه درستش هم منظورم اینه که از نوع پروژه نامربوط (مثل پروژه خالی یا کنسولی) استفاده نکنین و پروژه GUI بسازین. همچنین فرم رو هم وقتی به پروژه اضافه میکنین، مورد Qt Designer Form Class رو انتخاب کنین تا خودش هم فرم رو بسازه و هم فایلهای h و cpp مربوط به کلاس اون رو بسازه و حداقل کد لازم رو توشون بنویسه. اگه به جای این از Qt Designer Form استفاده کنین، کلاسش ساخته نمیشه و دردسرش میفته به گردن خودتون.

وقتی فرم رو با Qt Designer Form Class ساختین، خیلی راحت میتونین با designerش فرمتون رو به صورت گرافیکی طراحی کنین و ویجتهای لازم رو روش قرار بدین و مشخصاتشون رو تکمیل کنین. برای کد زدن در جاهای لازم هم کافیه روی ویجت مورد نظر راست کلیک کرده و مورد Go to slot رو بزنین تا بعد از پرسیدن و انتخاب رویداد مورد نظر، شما رو دقیقا بره سر نقطه ای که کدتون رو باید بزنین.

بنابراین میبینین که هیچ فایلی رو لازم نیست دستی بسازین و هیچ کد اضافی و سربار هم مجبور نیستین دستی بزنین، به شرطی که از راه درستش همه چیز رو بسازین.

one hacker alone
شنبه 13 اسفند 1390, 14:26 عصر
ببینید من از Qt Disigner برای طراحی فرم استفاده کردم و خروجی میشه یه فایل ui
از این طرف هم میام سراغ Qt Creator و یه پروژه میسازم از نوع Widget که خودش یه فرم ساده بدون هیچ کنترلی میسازه
اما برای ساخت یه برنامه ساده قرار دادن دکمه و برچسب و... روی فرم با دادن مختصات یکم زمان بر هست و حوصله میخواد واسه همین خواستم از فرمی که توی Disigner ساختم استفاده کنم

که متاسفانه موفق نشدم

mousamk
دوشنبه 15 اسفند 1390, 15:24 عصر
خب همینه دیگه که میگم کار خودتون رو سخت میکنین. توجه داشته باشین که QtCreator تو دل خودش Designer داره و شما باید از اون استفاده کنین. وقتی از Qt Designer مستقل بیرونی استفاده میکنین وظیفه ساختن و وصل کردن فایلها برعهده خودتون میفته.
به عنوان یه آموزش اولیه به اینجا یه نگاهی بندازین:
http://doc.qt.nokia.com/qtcreator-snapshot/creator-writing-program.html

one hacker alone
سه شنبه 16 اسفند 1390, 00:22 صبح
ممنون بله فهمیدم چکار کرده البته هنوز خودم انجام ندادم اما اگه به این شکله پس اون برنامه طراحی که به شکل مستقل وجود داره اون چیه؟ نکنه این که درونی هست در واقه همونی هست که به شکل مستقل هم اجرا میشه؟ یعنی منظورم اینه که نصب برنامه Qt Disigner این امکان رو به ما میده که از Creator هم بتونم برای طراحی استفاده کنیم. به این شکله؟
بعد تو اون پنجره که جزء مراحل ساخت پروژه هست و ما Desktop رو انتخاب میکنیم برای من گزینه های Simulat و Symbian Mobile وجود نداره و فقط Desktop هست
چکار کنم اونها هم ظاهر بشن

mousamk
سه شنبه 16 اسفند 1390, 00:35 صبح
اون برنامه یادگار گذشته است. قبل از QtCreator هیچ IDE مستقلی برای کیوت وجود نداشت و در عوض چند تا برنامه جدا مثل همین Designer و ... وجود داشت که کاربران مجبور بودن با تک تک اونا کار کنند و مثلا در Designer فرم رو بسازن و در notepad کدها را بنویسن و بعدش uic و moc و کامپایلر و برنامه qmake را فراخوانی کنن. با اومدن QtCreator اونا همشون یه جا متمع شدن و دیگه لازم نیست اون شکلی کار کنن، اگرچه هنوز هم امکان استفاده از اون روش مهیاست.
البته حدستون هم درسته. اون Designer درونی QtCreator در حقیقت همون برنامه بیرونی هست که وارد QtCreator شده، ولی باهاش مجتمع شده و QtCreator میتونه با فایل خروجی اون کار کنه و فایل‌های کدش رو خودش بسازه و به محض تغییر در Designer، کدش رو همگام کنه.

الان چند وقتیه که کیوت به شکل Qt SDK عرضه میشه که توش همه ابزارهای مربوط به کیوت حتی ابزارهای مربوط به برنامه نویسی موبایلش یکجا جمع شدن. شما اگه اون گزینه های مربوط به موبایل و شبیه‌سازش رو ندارین، احتمالا یا موقع نصب SDK گفتین که نصب نشن، یا این که اصلا SDK نصب نکردین و ابزارهای کیوت (QtCreator و لایببری) رو جدا دانلود و نصب کردین و یا این که شاید ورژن قدیمی که هنوز توش موبایل وارد نشده بود دارین.

one hacker alone
سه شنبه 16 اسفند 1390, 18:58 عصر
مهندس من اون روشی رو که گفتین از طریق خود Creator نصب کنم رفتم و درست هم بود ممنون
درمورد بحث IDE هم توضیحیتون روشنم کرد باز ممنون

2 سوال:

1- من در محیط Disigner یه شی میزارم مثل button الان که وارد Editor میشم چجوری میتونم یه کد رو برای رویداد کلیک اون بنویسم مثلا تابع Exit() رو برای خروج از برنامه کجای کد بنویسم

2- جریان این SDK چیه؟ البته در کل میگم چون اون مشکلی که داشتم همون بود که گفتین یعنی من کامل نصب نکردم اما میخوام بدونم منظور از SDK در زبان های مختلف چیه و چه مفهومی داره مثلا میگم SDK برای جاوا و ... این ها یعنی چی؟

mousamk
سه شنبه 16 اسفند 1390, 19:15 عصر
1. اگه کدتون نیاز به نوشتن داره (یه کار خاصی رو میخواین انجام بدین) کافیه روی دکمه راست کلیک کنین و Go to slot رو بزنین و بعدش سیگنال (رویداد) مورد نظر رو انتخاب کنین (مثلا clicked) و بعدش OK که بزنین خودش یه تابع (اسلات) ایجاد میکنه و شما رو میبره همونجا که باید کدتون رو بنویسین.
ولی اگه کار خاصی ندارین و کارتون حداکثر در حد وصل کردن یک رویداد به یک دستور هست (مثلا همین مثال Exit خودتون) میتونین بدون کد زدن و تو همون محیط Designer این اتصال رو انجام بدین. در Designer اون بالا تو نوار ابزارش دکمه Edit Signals/Slots رو بزنین (میانبر F4) حالا یه درگ از ویجت ایجاد کننده رویداد (در اینجا دکمه) به وبجت هندل کننده (در اینجا یه جای خالی در بدنه پنجره) انجام بدین. یه پنجره براتون باز میشه که رویداد مورد نظر از ویجت اولی و اسلات مورد نظر از ویجت دومی رو میپرسه (از اولی clicked رو انتخاب کنین و از دومی close رو - البته اون تیک پایین رو بزنین تا اسلاتهای به ارث رسیده رو هم نشون بده، چون close به پنجره به ارث رسیده و مال خودش نیست) حالا که ارتباط رو ساختین، کافیه OK بزنین و تمام!
ضمنا این ارتباطات رو در بخش signals and slots editor (در پایین پنجره Designer) هم میتونین ببینین و از اونجا هم ویرایش یا حذف و افزودن انجام بدین. برای بعضی وقتها که نمیتونین راحت درگ انجام بدین (مثلا وقتی فرستنده یک منو باشه) میتونین از همینجا هم ارتباط رو بسازین.

2. SDK یک عبارت عمومی در برنامه نویسی به معنی Software Development Kit هست. معمولا تو هر زبان یا فریمورک، وقتی همه ابزارهای لازم رو در یک بسته جمع آوری میکنن اسمش رو SDK میذارن. هدف از ایجاد این SDKها، راحت کردن کار کاربر هست که دیگه مجبور نباشه یکی یکی ابزارها رو دانلود کنه و ترتیبشون رو بدونه و نصب هر کدوم رو بلد باشه، بلکه با این SDK همه رو یه جا با چند تا کلیک نصب میکنه و محیطش آماده استفاده میشه.