PDA

View Full Version : سوال: چطور پنجره‌های ساخته شده با QT Designer رو همگردانی (کامپایل) کنیم؟



amir_saniyan
چهارشنبه 12 تیر 1387, 11:35 صبح
سلام

توی پیوند زیر یک راهنمای خوب برای کار با QT Designer وجود داره:
http://www.pylearn.com/fa/wiki/index.php/Qt

اما در زمانی که دارم این متن رو می‌نویسم دقیقا مهمترین قسمت و بخش پایانی این راهنما یعنی نحوه همگردانی (کامپایل) پنجره ایجاد شده هنوز کامل نشده.

حالا سوال من اینه که ما چطور از پنجره ایجاد شده تو کدهامون استفاده کنیم؟

نکته 1: حتی تو منابع انگلیسی و راهنمای خود QT Designer هم چیزی پیدا نکردم.

نکته 2: تنها چیزی که از روی مثال‌ها فهمیدم اینه که بعد از ساخت پنجره باید از تو QT Designer بیام بیرون (که این خیلی بده)، بعد اگه مثلا اسم پنجره‌مون Amir.ui هست، باید توی کد اصلی‌مون ui_Amir.h رو include کنیم. بعد تازه باید یک رده (کلاس) مثل AmirForm بسازیم که این رده (کلاس) از UI::Amir و QMainWindow ارث ببره. (کد زیر)


class AmirForm : public QMainWindow, UI::Amir
{
public: AmirForm(){setupUI(this);}
public: ~AmirForm(){}
};


حالا تازه باید main رو بسازیم و برای نمایش از رده (کلاس) AmirForm استفاده کنیم:


AmirForm amirForm;
amirForm.show();

حالا روشم درست بود یا نه؟ :لبخند:

نکته 3: کلی وقت گذاشتم تا این روش رو کشف کردم :قهقهه: و بعدش وقتی اولین پنجره رو به کمک QT Designer با موفقیت ساختم (یک پنجره با گزینگان (منوهای) فارسی با یک دکمه وسطش) اینقدر اعصابم خورد بود که چرا این قدر بد مستند شده که کلا پروژه‌ام رو پاک کردم. (شاید هم من درست نگشتم). حالا ممکنه کدهای بالا (که از حفظ نوشتم) توش خطا هم باشه ولی روندش همینی است که می‌بینید.

نکته4: واقعا حالا می‌فهمم چرا مایکروسافت اینقدر موفقه! چون فقط برنامه‌نویس نداره. احتمالا کلی هم تایپیست داره که شبانه روز دارند تایپ می‌کنند و کلی راهنما و مستندات رو در اختیار مشتری‌هاش می‌گذاره.

سپاس

man4toman
چهارشنبه 12 تیر 1387, 13:20 عصر
سلام دوست عزیز
اگه در مورد استفاده .ui ها میخواید بدونید به اینجا برید:

http://barnamenevis.org/forum/showpost.php?p=538001&postcount=5
تاپیک اصلی:

http://barnamenevis.org/forum/showthread.php?t=110167

---------------
در مورد نحوه ی عملیات هم در اول کاربرای کسایی که عادت به کد نویسی دستی و برنامه سازی کنسولی ندارند واقعا مشکله.
ولی با تمرین و ادامه ی کار عادی میشه.
اگه همه چیز آسون بدست میومد که .........
موفق باشید

sang9111
چهارشنبه 12 تیر 1387, 14:57 عصر
جواب این سوال رو قبلا فکر کنم داده شده و از رو رفرنس راحت می فهمی ولی یه روش راحت بهت می گم البته به خوبی اون روش نیست ولی موثر است برای اینکه سریع یاد بگیری برای هر widget درست می کنی فرقی نمی کنه چی باشه می تونی از تابع setGeometry استفاده کنی که 4 پارامتر داره اولی x موقعیت برداری دومی هم که y که معلومه و 2 تای دیگه هم ط.ل عرض هستن می تونی با qt designer موقعیت هر widget رو بدست بیاری در گوشه qt designer این یه روش معمولی هست راحت بی درد سر بقیه مشخصات هم به وصیله خود qt تنظیم میشه امتحان کن

amir_saniyan
چهارشنبه 12 تیر 1387, 22:46 عصر
سلام


جواب این سوال رو قبلا فکر کنم داده شده و از رو رفرنس راحت می فهمی

می‌شه رفرنسش رو هم ذکر کنید؟ باور کنید همه جا (از جمله منابع انگلیسی) رو زیر و رو کردم اما چیزی پیدا نکردم. این روش رو هم در واقع با سعی و خطای فراوان حدس زدم. یادمه تو لینوکس (و البته ورژن‌های قدیمی QT Designer) تو همون QT Designer یک main فایل cpp می‌ساختی و همه چیز به خوبی و خوشی تموم می‌شد. اما حالا تو File>New چنین چیزی وجود نداره...



یه روش راحت بهت می گم البته به خوبی اون روش نیست ولی موثر است برای اینکه سریع یاد بگیری برای هر widget درست می کنی فرقی نمی کنه چی باشه می تونی از تابع setGeometry استفاده کنی که 4 پارامتر داره اولی x موقعیت برداری دومی هم که y که معلومه و 2 تای دیگه هم ط.ل عرض هستن می تونی با qt designer موقعیت هر widget رو بدست بیاری در گوشه qt designer این یه روش معمولی هست راحت بی درد سر بقیه مشخصات هم به وصیله خود qt تنظیم میشه امتحان کن

خیلی ممنون که وقت گذاشتید و جواب دادید اما احساس می‌کنم درست منظورم رو متوجه نشدید. برنامه من اصلا کامپایل نمی‌شد و اصلا به کلاس پنجره هیچ جوری دسترسی نداشتم :) البته من خودم تازه کارم و ممکنه من منظور پاسخ‌تون رو متوجه نشده باشم. به هر حال باز هم ممنون

man4toman
پنج شنبه 13 تیر 1387, 16:04 عصر
دوست عزیز در مورد کامپایل کردن به اون لینکی که دادم سر بزنید.مدیر بخش پاسخ خوبی دادن.
در مورد رفرنس هم به Qt Assistant مراجعه کنید که همراه خود Qt هست.
البته کتاب Prentice.Hall.C.plus.plus.GUI.Programming.with.Qt. 4.2nd.Edition.Feb.2008 هم کتاب خوبیه.
مویید باشید