PDA

View Full Version : آموزش راه اندازی Qt در ویندوز (اجرای اولین برنامه)



Nima_NF
پنج شنبه 11 بهمن 1386, 02:47 صبح
با توجه به اینکه کار با Qt برای شروع کمی سخت هست ، نحوه راه اندازی آن را در ویندوز توضیح می دهم:

1) ابتدا پک نصب Qt را از سایت آن دریافت کنید.(حتما نوع .exe آن را دریافت کنید تا دردسر تنظیمات نداشته باشید)
http://trolltech.com/developer/downloads/qt/windows

2) نصب : شما برای کار با نسخه Qt open source نیاز به کامپایلر minGW دارید که یا باید آن را جداگانه دانلود کنید و یا هنگام نصب پک Qt ، با زدن تیک مورد نظر ، آن را به صورت مستقیم از اینترنت دریافت و نصب کنید. در هر حال ابتدا باید کامپایلر را جداگانه از سایت آن دریافت و نصب کنید ، بعد به سراغ نصب Qt بروید تا به مشکل تنظیمات بر نخورید.
بهترین مکان نصب همان C:\Qt\4.x.x می باشد که فولدری با نام بدون فاصله خالی و قابل دسترسی سریع می باشد.

تذکر مهم: نسخه open source Qt را نمی توانید با visual studio کامپایل کنید و یا به عبارت دیگر ابزار های Qt را نمی توانید داخل visual studio استفاده کنید (Integrate) و برای این کار باید نسخه تجاری آن را خریداری کنید. پس کامپایل آن از طریق command prompt می باشد ، هر چند که روش هایی وجود دارد که با IDE این کار انجام شود ، ولی بسیار زمانبر است و ضمنا همه مراحل نیز اتومات نمی شود.

حالا Qt باید به درستی نصب شده باشد.

--------------------------------------------------------------------
اجرای ساده ترین برنامه:
ابتدا در درایو C ، فولدری با نام hello بسازید و سپس در داخل آن فایلی با نام و پسوند hello.cpp ساخته و کد های زیر را در آن کپی کنید:



#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
return app.exec();
}

برای کامپایل از منوی استارت به بخش programs و منوی نصب شده Qt بروید و از آنجا Qt 4.3.3 Command Prompt را اجرا کنید.

تذکر مهم: این Command Prompt دارای تنضیمات اولیه برای کامپایل می باشد که با Command Prompt اصلی ویندوز فرق می کند.

پس از اجرای آن ، مراحل زیر را انجام دهید:
1) به فولدر C:\hello\ بروید و برای ساخت فایل .pro تایپ کنید : qmake –project



C:\hello\qmake -project

تذکر: در صورت خطا در این مرحله یا اشتباها به Command Prompt ویندوز وارد شده اید و یا Qt درست نصب نشده است ، برای رفع حالت دوم تذکرات پست بعدی (انتهای آموزش) را مطالعه کنید.

2) برای ساخت فایل Makefile نیز تایپ کنید: qmake



C:\hello\qmake

3) برای کامپایل از طریق کامپایلر minGW نیز تایپ کنید : make



C:\hello\make

تذکر: در صورتی که در مرحله 3 با خطا رو برو شدید ، احتمالا کتابخانه های مخصوص debug برای Qt کامپایل نشده است و باید این کار را از منوی استارت و بخش نصب Qt و سپس (Qt 4.3.3 (Build Debug Libraries انجام دهید که بیش از 10 دقیقه طول خواهد کشید.

لذا برای سرعت عمل ، برنامه را فقط release کنید (بدون debug آن) ، پس به جای کد فوق بنویسید: make release



C:\hello\make release

موفق باشید

Nima_NF
پنج شنبه 11 بهمن 1386, 02:57 صبح
تذکر :مراحل زیر در موردی استفاده می شود که مراحل ذکر شده فوق ، درست عمل نمی کنند و یا شما پک zip شده Qt را دریافت کرده اید و می خواهید خودتان تنظیمات را انجام دهید.

1) مسیر c:\Qt\4.3.3\bin را به متغیر PATH در قسمت زیر در ویندوزاضافه کنید:
Control Panel->System->Advanced->Environment variables



Variable --> PATH
Value--> c:\Qt\4.3.3\bin

2) برای تنظیمات اعمال زیر را می توانید انجام دهید: به command prompt ویندوز بروید و به درایو C بروید ، سپس به فولدر \Qt\4.x.x بروید (x.x ورژن Qt شماست) و سپس تایپ کنید configure ، پس به صورت زیر:



C:
cd \Qt\4.3.3
C:\Qt\4.3.3\configure

موفق باشید

amir_saniyan
سه شنبه 11 تیر 1387, 16:17 عصر
سلام
فرض کنید که ما می‌خواهیم همین برنامه رو برای مشتری‌هامون منتشر کنیم. خوب حالا چه DLL هایی رو باید برای اون نصب کنیم؟ (یکی از اون‌ها مطمنا mingwm10.dll است). بقیه رو از کجا می‌شه گیر آورد (یعنی فهرست DLL های لازم چیه)؟

man4toman
سه شنبه 11 تیر 1387, 23:44 عصر
منظورتون DLL برای اجرای برنامه یی که با Qt مینویسیم؟

Nima_NF
چهارشنبه 12 تیر 1387, 02:13 صبح
وقتی از توابع و کلاس ها مختلف استفاده می کنید یک هدر فایل را نیز include می کنید که هم نام DLL هست در نتیجه همان Dll های مورد استفاده را باید کپی کنید و آن ها را می توانید از مسیر نصب شده Qt در فولدر bin بردارید:



C:\Qt\4.3.3\bin


ضمنا اگر تشخیص اینکه کدام DLL مورد نیاز هست کمی برایتان سخت است می توانید از برنامه Depends.exe که همراه Visual studio وجود دارد استفاده کنید.

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

خیلی ممنون از پاسخ‌هاتون.

بیشتر منظورم این بود که QT یک چیزی شبیه برنامه نصب Runtime داره یا نه؟ مثلا دات نت 2.0 یک فایل 20 مگابایتی برای نصب داره. در مورد GTK+ هم یک نفری پیدا شده و برنامه نصبی مخصوص ویندوزش رو نوشته (اینجا: http://gtk-win.sourceforge.net )، حتی MinGW هم یک پرونده فشرده Runtime داره. ولی برای QT چیزی من پیدا نکرده (منظورم چیزی که دیگه آدم خاطر جمع باشه وگرنه با سعی و خطا و حدس و گمان و بررسی‌های ابتدایی خودم، ممکنه مجموعه DLL هایی که جمع کرده باشم کامل نباشه و چون DLL ها تا زمانی که نیازی بهشون نیست بار نمی‌شوند ممکنه اصلا برنامه وسط کار خطا بده.) برای مشتری بدبخت هم که نمی‌شه کل QT رو نصب کرد (البته شاید هم بشه :) )

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

سپاس

Nima_NF
چهارشنبه 12 تیر 1387, 15:54 عصر
(منظورم چیزی که دیگه آدم خاطر جمع باشه وگرنه با سعی و خطا و حدس و گمان و بررسی‌های ابتدایی خودم، ممکنه مجموعه DLL هایی که جمع کرده باشم کامل نباشه و چون DLL ها تا زمانی که نیازی بهشون نیست بار نمی‌شوند ممکنه اصلا برنامه وسط کار خطا بده.) برای مشتری بدبخت هم که نمی‌شه کل QT رو نصب کرد (البته شاید هم بشه :) )

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

کپی کردن چند عدد dll در کنار فایل اجرایی exe شما که نام آن ها مشخص و سر راست هم هست و شما هدر آن ها در برنامه اضافه کرده اید اصلا هیچ کاری ندارد که بخواهند برایش برنامه نصب مخصوص بسازند و یا آن را هم جز ضعف Qt بشماریم!

کپی کردن Dll ها در کنار فایل اجرایی در سیستم مشتری نیاز به نصب هم ندارد و همین مورد کافیست.

ضمنا شما از هر نرم افزار ساخت install که استفاده کنید (installshield یا VS deployment و...) قادر به تشخیص dll های مورد نیاز هستند و آن ها را اعلام می کنند.

saeed_Z_F
یک شنبه 31 شهریور 1387, 12:38 عصر
سلام
من مثال شمارو انجام دادم وقتی release را اجرا کردم پیغامی مبنی بر پیدا نکردن چند تا از dll ها داد . سپس dll های لازم رو در کنار فایل اجرایی کپی کردم و سپس فایل اجرایی را اجرا کردم در این حالت برنامه بدون مشکل اجرا شد .
یک ابهام برای من وجود داره برای اجرای یک همچین برنامه ساده ای باید 12.4 MB فایل همراه برنامه باشد به نظر شما این performance را پایین نمیاره یا اینکه توزیع برنامه مشکل نمیشه .

سوال دیگه من اینه که اگه از MFC استفاده کنیم دیگه احتیاج به هیچ DLL اضافی وجود نداره ؟ یعنی اینکه این DLL ها همراه ویندوز نصب میشه ؟

Nima_NF
یک شنبه 31 شهریور 1387, 14:11 عصر
برای Qt دو نوع انتشار وجود دارد:
1- یکی به صورت Shared Libraries هست که شما dll ها را در کنار فایل اجرایی کپی می کنید، یعنی با توجه توابعی که استفاده می کنید dll آن را نیز باید کپی کنید و نیاز نیست همه dll ها کپی شوند.
این روش برخلاف تفکر شما مزایای خود را از جهت مصرف بهینه حافظه و performance دارد مخصوصا وقتی برنامه های دیگر تحت Qt در سیستم خود دارید، نرم افزارهای تجاری تقریبا در اکثر موارد از این روش استفاده می کنند.

توزیع برنامه مشکل نمیشه .حجم این dll ها قابل مقایسه با NET Framework. نیست. اما در هر حال در ازای مزیت cross-platform بودن این حجم لازم است، چون Qt از کنترل های GUI خود سیستم عامل استفاده نمی کند، بلکه همه آن ها را طراحی کرده است تا در همه جا یکسان باشد. اگر دنبال حجم کمتر هستید باید به سراغ برنامه نویسی مستقیم API با آن سیستم عامل بروید که همه کارها بر عهده خودتان است.

2- روش دیگر Static Linking است که ابتدا باید کتابخانه های استاتیک را تولید کنید و سپس از آن ها استفاده کنید، به این شکل توابع مورد استفاده در داخل فایل اجرایی قرار می گیرند و نیازمند dll ها جداگانه نیستند.
برای این کار از این لینک می توانید استفاده کنید (http://doc.trolltech.com/4.2/deployment-windows.html)
نکته : البته نمی دانم در نسخه open source به شما اجازه static linking داده می شود یا خیر.

ضمنا شما dll های کامپایلر را نیز باید منتشر کنید.

سوال دیگه من اینه که اگه از MFC استفاده کنیم دیگه احتیاج به هیچ DLL اضافی وجود نداره ؟ یعنی اینکه این DLL ها همراه ویندوز نصب میشه ؟برای MFC هم شما این دو راه را در اختیار دارید، اما معایب روش استاتیک با توجه به تعداد زیاد نرم افزار های MFC زیاد هست به همین دلیل نیارمند نصب dll های آن هستید،
در نسخه های قبلی در فولدر فایل اجرایی باید کپی می شدند و در نسخه های جدید باید در ویندوز نصب شوند (که به این شکل به ظاهر از دید پنهان می مانند) .

QTdesigner
جمعه 27 شهریور 1388, 20:15 عصر
برای این که بتونید Qt رو در c++ کامپایل کنید باید به سیستم عامل یک path بدهید برای این کار به طرق زیر عمل می کنیم این یکی از کار های خیلی مهم در نصب Qt در ویندوز است


control panel->system->advance->environment variable

در قسمت user variables for administrator یک variable اضافه کنید به نام Qmakespec به value بدهید win32-mcvc2008 (البته اگر از Microsoft visual studio استفاده می کنند)

یه variable دیگه درست کن اسمشو بزار QTDIR بعد آدرس محلی که QT رو در اون نسب کردی رو بده

در قسمت system variable در شاخه ی path به آخر value اینو اضافه کن Qt\bin***; جای ستاره ها محل نصب Qt رو بده
با این کار ها می تونید در c++ کد بزنید

اگه مطالب به دردتون خورد برام دعا کنید

saeed_Z_F
یک شنبه 25 بهمن 1388, 14:33 عصر
سلام
نصب و راه اندازی نسخه های جدید qt خیلی آسون و ساده شده و به راحتی با چند تا کلیک انجام میشه.
خیلی عالی شده.

m-taheri
یک شنبه 26 اردیبهشت 1389, 12:31 عصر
با سلام .

آیا میتونیم QT را روی 2008 VS نصب کنیم؟

حامد مصافی
یک شنبه 26 اردیبهشت 1389, 12:51 عصر
آیا میتونیم QT را روی 2008 VS نصب کنیم؟
بله qt-vs add-in (http://qt.nokia.com/downloads/visual-studio-add-in)را دانلود و نصب كنيد

Nima_NF
یک شنبه 26 اردیبهشت 1389, 14:15 عصر
از آنجایی که طی ماه های گذشته بسته های نصب Qt عرضه شده و دیگر به سادگی قابل استفاده ونصب کردن هست، لذا این تاپیک را از حالت اعلان خارج می کنم.

m-taheri
یک شنبه 26 اردیبهشت 1389, 14:57 عصر
بله qt-vs add-in (http://qt.nokia.com/downloads/visual-studio-add-in)را دانلود و نصب كنيد

به نظر شما بهتره از qt-vs add-in (http://qt.nokia.com/downloads/visual-studio-add-in) استفاده کنیم یا از qt-creator

حامد مصافی
یک شنبه 26 اردیبهشت 1389, 16:18 عصر
به نظر شما بهتره از qt-vs add-in (http://qt.nokia.com/downloads/visual-studio-add-in) استفاده کنیم یا از qt-creator
تا جايي كه من ديدم qt vs add-in قادر نيست از تمام امكانات VS استفاده كند، به همين دليل چندان مطلوب كساني كه انتظاري در حد بالا از VS دارند نيست. اما در كل شما با استفاده از اين افزونه مي توانيد در محيطي كه بدان عادت داريد كد نويسي كنيد. كه البته امكاناتي مانند ديباگ مستقيم ابزار هاي تلفن همراه (در صورت برنامه نويسي براي موبايل ها) يا كمك سريع را از دست مي دهيد. در نهايت به نظر من فرقي ندارد و مي توانيد با هر كدام كه راحت تر هستيد كار كنيد. در خارج از دنياي مايكروسافت كسي به IDE عادت نمي كند. مهم استفاده از خود qt است. خود من هم از qt creator استفاده مي كنم، هر چند سال ها با VS برنامه نويسي كرده و مي كنم، و به آن عادت كرده ام.

eshpilen
پنج شنبه 30 اردیبهشت 1389, 22:16 عصر
منکه اصلا از محیط ویژوالش استفاده نمیکنم.
با خط فرمان کارم راه میفته.
البته شاید بعدا اینکار رو بکنم.
الان چون سیستمم ضعیفه اجرای چنین محیطی کلی از رمق سیستم رو میگیره.

shaaadi
چهارشنبه 05 خرداد 1389, 07:00 صبح
برای استفاده از کتابخونه ی QT در لینوکس (ابونتو ۹.۱۰) چه پکیج هایی رو باید نصب کنم ؟

حامد مصافی
چهارشنبه 05 خرداد 1389, 08:04 صبح
بهتره بسته نصب اتوماتيك رو از سايت نوكيا (http://qt.nokia.com/downloads)دانلود و نصب كنيد.

shaaadi
چهارشنبه 05 خرداد 1389, 10:12 صبح
آخه من نمیدونم تو این سایت چی رو باید دانلود و نصب کنم ؟؟!!!

حامد مصافی
چهارشنبه 05 خرداد 1389, 10:18 صبح
در صفحه باز شده Goto LGPL را كليك كرده و سكوي مورد نظر را انتخاب كنيد.
لينك مستقيم دانلود براي سكوي X11 (http://qt.nokia.com/downloads/linux-x11-cpp)

shaaadi
چهارشنبه 05 خرداد 1389, 11:08 صبح
خیلی خیلی ممنون از راهنماییتون ... ی سوال دیگه هم داشتم اینکه این خیلی حجمش زیاده ... راه دیگه ی هم هست که بشه از این این کتاب خونه استفاده کرد ؟
بعد اینکه من نرم افزار QT creator رو نصب کردم ... آیا این کتاب خونه ها هم تو این نرم افزار هست ؟

حامد مصافی
چهارشنبه 05 خرداد 1389, 11:14 صبح
خیلی خیلی ممنون از راهنماییتون ... ی سوال دیگه هم داشتم اینکه این خیلی حجمش زیاده ... راه دیگه ی هم هست که بشه از این این کتاب خونه استفاده کرد ؟
بالاخره بايد اين كتابخانه ها به طريقي به كامپيوتر شما برده شوند. دانلود، دريافت از دوست، استفاده از مخازن همراه (در توزيع هايي مانند دبيان) يا ...


بعد اینکه من نرم افزار QT creator رو نصب کردم ... آیا این کتاب خونه ها هم تو این نرم افزار هست ؟
خير، اين فقط محيط توسعه است.

habel_star
سه شنبه 16 شهریور 1389, 10:43 صبح
سلام من میخواستم بدونم این qt چه استفاده های داره پیشاپش از راهنمیتون تشکر میکنم

حامد مصافی
سه شنبه 16 شهریور 1389, 10:45 صبح
همون استفاده اي كه ساير كتابخانه ها و تولكيت ها دارند. يعني ايجاد امكاناتي براي سهولت در برنامه نويسي. تولكيت مجموعه اي از كد هاي از پيش نوشته شده است كه روند توسعه نرم افزار را سريعتر از حالتي كه بدون آن برنامه بنويسيد، ممكن مي سازد.