This forum has been archived. All content is frozen. Please use KDE Discuss instead.

نوشتن برنامه های qt

Tags: None
(comma "," separated)
User avatar
pesarkhobeee
Posts
22
Karma
0

نوشتن برنامه های qt

Fri Jul 31, 2009 6:14 am
با سلام
چند روز پیش یه پیشنهاد به اقا روزبه مطرح کردم مبنی بر ایجاد یک قسمت برای qt
که ایشون گفتن رسیدگی میشه ولی تا اون موقع با توجه به اینکه افراد qt کار ایرانی در اینجا هستن خواهش میکنم اقدام به  نوشتن اموزش کار با qt و استفاده از ide های خاص اون برای ایجاد یه برنامه کنن!
برای شروع خواهش میکنم یه اموزش خیلی ساده از کلیه مراحل ( طراحی رابط کاربری و کد نویسی و کامپایل ) در اینجا یکی بنویسه تا همه به صورت اولیه با روندش اشنا شیم
ممنونم :D
User avatar
maour
Registered Member
Posts
13
Karma
0
OS
خب آموزش کیوت که خیلی کار میبره و تقریبا شبیه اینه که مطالب انگلیسی رو به فارسی ترجمه کنیم .

اگه میخوای برنامه نویسی رو به طور جدی دنبال کنی ، دانشتن زبان انگلیسی واجب هست . ( اون هم در محیط لینوکس که مطالب فارسی کمتر وجود داره ! )

یک صحبت کوچیک در مورد کیوت قبلا در اینجا http://mtux.wordpress.com/2008/07/19/linuxdev کردم .

راستش هر چی فکر میکنم به طور کلی چطوری بگم ! نفهمیدم !  ::)

بهترین کار اینه که شروع به یادگیری یکنی و هر جا مشکل داشتی که نتونستی به جواب برسی یا مسیر رو ندونستی سوالت رو بپرسی .

برای شروع هم بهت توصیه میکنم که از کتاب های موجود در زمینه کیوت استفاده کنی و فصل اول یک کتاب رو بخونی و بعد از اون بری سراغ مستندات قوی کیوت . http://doc.qtsoftware.com/4.5/index.html

کم کم با کلاس های اون آشنا بشی تا بتونی هر جا لازم بود اونها رو بخاطر بیاری .

طراحی واسط کاربر هم با برنامه ی designer هست که با SDK ی کیوت همراه هست و همچنین در مخزن توزیع مورد استفاده ات هم هست فقط باید بسته های مربوط به توسعه کیوت رو نصب کنی (qt-dev)


اگه سوالهاتو جزئی تر بپرسی کسی که جوابت رو میده میفهمه که برای یادگیری مشتاق هستی و حاضری کمی وقت بزاری  ;)
shahab_sh
Registered Member
Posts
4
Karma
0
سلام
فقط این نکته رو هم بگم که مستندات کیوت که لینکش رو بالا دوستمون داد در برنامه ی Assistant وجود داره. با نصب این برنامه به همه ی مستندات دسترسی دارید به علاوه ی امکان جستجو و...

برای IDE هم میتونید از Creator استفاده کنید که در واقع جزوی از پروژه ی کیوت هست. البته از اکثر IDEها میتونید استفاده کنید چون آخرش هم باید به زبان C++ (یا python,...) برنامتون رو بنویسید ولی اگه میخواید که یه سری کلمات کلیدی مختص کیوت رو رنگلی نشون بده و... با نصب یک plug in مشکل حل میشه. اکثر IDE های معروف هم برای کیوت یه plug in دارن.

من خودم از Emacs استفاده میکنم و با استفاده از لینک زیر یه سری امکانات کیوت رو بهش اضافه کردم.
http://www.emacswiki.org/emacs/QtMode

راستی KDevelop که فعلا در حالت آزمایشی هست (beta) خیلی امکانات زیاد و خوبی داره. تا چندوقت دیگه که نسخه ی پایدارش منتشر شد حتما یه نگاهی بهش بنداز.

موفق باشی...
شهاب
User avatar
maour
Registered Member
Posts
13
Karma
0
OS
KDevelop سری جدید که واقعا شاهکار شده  8)

البته من از Qt Creator هم استفاده کردم اما به نظر من KDevelop خیلی جلوتر هست و همچنین توسعه دهنده های بیشتری داره.

ولی قبل از استفاده از IDE ها ، بهتره که از طریق خط فرمان و کار با دستور qmake عملیات کامپایل رو یاد بگیری و بعدا به سراغ IDE بری.
User avatar
pesarkhobeee
Posts
22
Karma
0
خیلی ممنونم ! چند وقتی بود نتونستم سر بزنم چون خیلی گرفتار کارامم  ، ولی من دو محیطی رو که فرمودین دیدم و راستشو بخواین تا جای که کار کردم که البته یه hello world  بیشتر نبود گزینه ای برای کامپایل برناممم مثل همه ی ide ها پیدا نکردم حالا یا من خیلی کورم یا روالش یه چیز دیگسش ! :'(
User avatar
maour
Registered Member
Posts
13
Karma
0
OS
[quote="pesarkhobeee"]
خیلی ممنونم ! چند وقتی بود نتونستم سر بزنم چون خیلی گرفتار کارامم  ، ولی من دو محیطی رو که فرمودین دیدم و راستشو بخواین تا جای که کار کردم که البته یه hello world  بیشتر نبود گزینه ای برای کامپایل برناممم مثل همه ی ide ها پیدا نکردم حالا یا من خیلی کورم یا روالش یه چیز دیگسش ! :'(
[/quote]

هووم ؟!
والا نظری ندارم که چرا ندیدیش اما در هر صورت توی منو ها که هست و نمیشه نباشه !
اما همونطور که گفتم فعلا از IDE دوری کن و به کامپایل در حط فرمان و کد نوشتن در ادیتور ساده بسنده کن تا کم کم بری به مرحله بعد ;)
User avatar
momeny
Registered Member
Posts
56
Karma
2
OS
[quote="pesarkhobeee"]
خیلی ممنونم ! چند وقتی بود نتونستم سر بزنم چون خیلی گرفتار کارامم  ، ولی من دو محیطی رو که فرمودین دیدم و راستشو بخواین تا جای که کار کردم که البته یه hello world  بیشتر نبود گزینه ای برای کامپایل برناممم مثل همه ی ide ها پیدا نکردم حالا یا من خیلی کورم یا روالش یه چیز دیگسش ! :'(
[/quote]

ببین توی لینوکس نمی‌دونم تا بحال تجربه‌ای داری یا نه! اما اصولا سیستم اینه که از یک برنامه‌ی کمکی برای کامپایل و مسائل مربوطه استفاده می‌شه! مثل AutoMake یا CMake یا QMake یا ...
و همینطور اینکه کامپایلر برای همه همون کامپایلرهای گنو هستند! یعنی GCC و G++ و ...

و این وسط IDE از اینا استفاده می‌کنه!

منم توصیه می‌کنم که قبل از هرکاری با اینا آشنا بشی! یعنی اول با کامپایلر مربوطه، مثلا برای C++ با برنامه‌ی g++ و سپس با برنامه‌ی build system یا همون کمکی برای کامپایل و ... که مثلا QMake به همراه Qt منتشر می‌شه و در واقع برنامه‌ی build واسه‌ی Qt هست! البته برنامه‌ی CMake هم که یک برنامه‌ی جداگانه هست، و برای Qt بعضیها(مثل پروژه‌ی KDE) استفاده می‌کنن جالبه! اما واسه شروع همون QMake راحتتر و در دسترس تره ;)

بعد از اینکه با این موجودات آشنا شدی، کار کردن با IDE خیلی ساده‌تر می‌شه! در واقع روالها میاد دستت!
و برای فعالیت حرفه‌ای برنامه‌سازی، حتما باید با اینا + یه چیزای دیگه‌ای مثل gdb و برنامه‌های مرتبط دیگه، هم آشنا بشی!

اما اگه بازم اصرار داشتی بدون این چیزا که گفتم شروع کنی، برو سراغه QtDesigner یا KDevelop و یه پروژه‌ی ساده تعریف کن، خودش اینکارها رو می‌کنه واست! اما مسلما بعدش مجبور می‌شی اینا رو بفهمی ;)


Choqok developer
User avatar
pesarkhobeee
Posts
22
Karma
0
خوب امروز تونستم پیشرفت های زیادی رو در زمینه qt و استفاده از QtCreator داشته باشم   ;Dاما اولین کدی که امتحان کردم رو خواستم اینجا بزارم تا هم بقیه که مثل منن شاید ازش بتونن استفاده کنن و هم اینکه یه سوال بپرسم!
اولین کدی که امتحان کردم مربوط به ایجادپنجره بود که کدش به شرح زیره:


Code: Select all

#include <QApplication>
#include <QWidget>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
window.resize(250, 150);
window.setWindowTitle("Simple example");
window.show();
return app.exec();
}




و اون رو به صورت زیر کامپایل و اجرا کردم:


Code: Select all
qmake -project hw.cpp -o hw
qmake hw
make
 ./hw




و جالب اینجاس که اجرا هم میشه اما موقع make یه error میده :




/home/pesarkhobeee/qtsample/hello/hw:1: Parse Error ('ELF')
Error processing project file: hw
make: *** [Makefile] Error 3


اکثر ارورای امروزمو تو نمونه کد های مختلف فهمیدم جز این که مانع اجرا هم نمیشه! حالا کسی میدونه این چیه؟

Last edited by pesarkhobeee on Fri Aug 07, 2009 8:16 pm, edited 1 time in total.
User avatar
maour
Registered Member
Posts
13
Karma
0
OS
hw دیگه چه اسمیه !!!

بنا بر تجربه سعی کن اسم ها رو دست انتخاب کنی حتی اگه داری یک مثال و تست ساده مینویسی ;)

اسم فایل رو بزار main.cpp ;)

اولین دستوری که نوشتی درست نیست ، باید فایل .pro بسازی که ساختار درونیه ساده ای داره اما شما اومدی فایل آبحکت ساختی ! به روش gcc عمل کردی !

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

qmake -project
qmake foldername.pro
make
User avatar
lomion
Registered Member
Posts
8
Karma
0
OS
اینم یه Hello World دیگه (به زبان روبی):
Code: Select all
require 'Qt4'

app = Qt::Application.new(ARGV)

quit = Qt::PushButton.new('Quit')
quit.resize(75, 30)
quit.setFont(Qt::Font.new('Times', 18, Qt::Font::Bold))

Qt::Object.connect(quit, SIGNAL('clicked()'), app, SLOT('quit()'))

quit.show()
app.exec()


به همین سادگی، به همین خوشمزگی! داخل irb هم میشه اجراش کرد.  ;)
User avatar
pesarkhobeee
Posts
22
Karma
0
خوب من دارم روند اموزش QT رو ادامه میدم و سعی میکنم مطالبی رو که یادمیگیرم به صورت مستند در بیارم شاید به درد یکی دیگه هم بخوره در همین راستا امروز دو تاپست در وبلاگم دادم که گفتم اینجا هم بزارم ;)



چند وقتیه که حرکت زنجان لاگ رو شروع کردیم و خیلی مشتاق بودم که در لینوکس تخصصی تر کار کنم.
خیلیا سراغ شبکه در لینوکس میرن و خیلیای دیگه دنبال برنامه نویسی و …
من جزو دسته دومم و خیلی دوست دارم برنامه ای که مینویسم تو همه ی سیستم عامل ها اجرا شه چون موعتقدم در نهایت در بهترین حالت سیستم عامل های تجاری در کنار سیستم عامل های اپن سورس در کنار هم به خوبی و خوشی زندگی خواهند کرد و کسانی برنده اند که برنامه هاشون رو هر دو پلتفرم اجرا شه! ( البته این نظر منه)
خوب در مقام تحقیق میشه گفت چند تا گزینه خوب برای این کار پیدا کردم :


java
c
c++
Python


تمام زبانهای بالا زبانهای خوبی هستن که بسته به شرایط باید استفاده شن اما به نظر خودم زبانی که تا حد ممکن قوی باشه و ساده و در تمام پلتفرم ها یکسان باشه و کتابهای فارسی زیادی داشته باشه و استادشم گیر بیاد java بوده و سعیم کردم که یه کلاس بزارم ولی فعلا بچه های زیادی اعلام امادگی نکردن!
خود من مقداری باهاش کار کردم و شاید تنها بدیشو این بدونم که کاربر قبل از استفاده از برنامه جاوای شما JVM رو باید نصب کنه و این برای کاربران عادی جامعه ما یه نمه سخته!
البته چیزای دیگه مثل سرعت کمتر برنامه های جاوا نسبت به دیگران و … هست که برا من مهم نبوده!
و اما شایددر گزینه بعدی زبان نام اشنای c و c++ باشه اما خوب برای ایجاد برنامه های اپلیکیشن اگر فقط از اینا بخواهیم استفاده کنیم بابامون در میاد چون برا هر چیزی باید کد بنویسیم برای همین ،قالب های کاری (framework) برای این زبان ها ساخته شدن که کارها رو خیلی ساده تر کردن ، در تحقیقاتم به سه موردشون بر خوردم:


wxWidgets
http://www.wxwidgets.org/

GTK
http://www.gtk.org/

QT
http://www.qtsoftware.com/products/


و باز هم باید بر اساس شرایط و نیازتون یکی رو انتخاب کنید که با یه خورده گوگل کردن نام های بالا اطاعات زیادی رو راجبشون پیدا کنید و انتخابتون رو اگاهانه انجام بدین.
به هزارو یه دلیل شخصی من qt رو انتخاب کردم و سعی دارم هر چیزیو که یاد میگیرم اینجا هم بنویسم!
برا اینکه بیشتر با کیوت اشنا شیم قسمتی از متن موجود در ویکی www.pylearn.com رو در اینجا میارم که برای پیدا کردن اطلاعات بیشتر میتونبد به منبع اصلی مراجعه کنید:

منبع: http://www.pylearn.com/fa/wiki/index.php/Qt

QT یک فریم ورک مولتی پلتفرم برای توسعه نرم افزار می باشد که اکثرا برای ایجاد برنامه هایی با رابط کاربری (GUI) مورد استفاده قرار می گیرد . اما پس از نسخه ۴ امکان ایجاد برنامه های متنی نیز فراهم شده است . بیشترین استفاده از کیوتی در رابط گرافیکی KDE بوده است که یکی از مهمترین محیط های گرافیکی لینوکس می باشد . نرم افزار های بسیاری چون Opera, Google Earth, Skype, Qtopia و ... نیز توسط این ابزار ایجاد گردیده اند . این ابزار توسط یک شرکت نروژی به نام Trolltech ایجاد گردیده و با سرعت بسیاری در حال توسعه می باشد .


زبان برنامه نویسی در Qt بصورت پیش فرض ++C می باشد . تقریبا این ابزار را می توان با محیط ++VC مقایسه نمود . اما امکان برنامه نویسی با زبانهای دیگر چون پایتون ، رابی ، PHP ، پرل ، پاسکال و حتی #C و جاوا نیز در Qt فراهم می باشد ! همانطور که گفته شد کیوتی تقریبا در اکثر سیستم عامل های موجود چون لینوکس ، ویندوز ، مک و سیستم های خاصی چون PDA ها و Smartphone ها قابل اجراست .

Qt از موتوری درونی و خاص خود برای ایجاد اشیا و پنجره ها استفاده می کند . بنابراین امکان اجرا بر روی چندین سیستم عامل و نیز استفاده از اشایی پیشرفته براحتی ممکن می باشد . در عین حال کیوتی در هر سیستم عامل برنامه هایی درست همانند ظاهر همان سیستم عامل یا اصطلاحا محلی (native) تولید می کند .

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



خوب بعد از انتخاب زبان و فریم ورک مورد نظرم دنبال یه محیط توسعه خوب (IDE) بودم که باز هم به چند گزینه بر خوردم:

Qt Creator
kdevelop
Edyuk
Monkey Studio
Qt Visual Studio Integration

و فعلا باز هم به دلایل شخصی از Qt Creator استفاده میکنم . به این دلیل میگم دلایل شخصی تا نشون بدم شاید بهترین گزینه نباشه ولی بنا به قانون نسبیت هیچ چیزی مطلق نیست و بنا به شرایط شاید چیزی که در مواقع عادی بد باشه در شرایط شما خوب باشه! بحث فلسفی شد بماند!
اما بنا به توصیه بزرگان کیوت کار ایرانی بهتر اول ادم بدون محیط توسعه کد بزنه و کامپایل کنه تا روال دستش بیاد و خوب ما هم یه خورده حرفشون رو گوش کردیم و رفتیم در لینوکسما و کا ر را شروع کردیم و پس از مقداری اشتباه با کمک بزرگان (دستشون درد نکنه) روال دستمون اومد برای مثال بیایید یه برنامه ساده با کیوت بنویسیم:
تو یه ادیتور کدهای زیر رو تایپ کنید:

Code: Select all
#include <QApplication>
#include <Qwidget>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
window.resize(250, 150);
window.setWindowTitle("Simple example");
window.show();
return app.exec();
}


و مثلا با نام window.cpp ذخیره کنید  و حالا برای اجرا باید مراحل زیر رو در کنسول لینوکستون در وشه ای که فایل بالا رو ذخیره کردین یکی یکی برین:

Code: Select all
qmake -project
qmake window.pro
make


خوب نتیجه مراحل بالا اینه که اگه در کدهاتون مشکلی نباشه برنامتون کامپایل میشه و فایل اجراییش اماده میشه و حالا برای اجرا در همون جا دستور زیر روبزنید:

Code: Select all
 ./window


و از اولین برنامتون لذت ببرید! من سعی خواهم کرد تمام تجربیاتمو به صورت مستند در بیارم تا نفرات بعد از من شاید راحتتر باشن
User avatar
pesarkhobeee
Posts
22
Karma
0

اموزش QT جلسه دوم

Tue Aug 11, 2009 5:48 pm
خوب در این قسمت میخوام نمونه کدی رو که در قسمت قبل کامپایل و اجرا کردیم بیشتر تشریح کنم:
Code: Select all


#include <QApplication>
#include <Qwidget>



این دو قطعه کد  کتابخونه های ضروری برای اجرای برناممون رو در کدمون درج میکنه
Code: Select all


QApplication app(argc, argv);


قطعه کد  در تمام برنامه های QT البته بجز کنسولیاش باید باشه و شیع کلی برنامه رو مشخص میکنه
Code: Select all

QWidget window;


این قطعه کد ابزارک (Widget) اصلی برناممون رو به اسم window تعریف میکنه.
Code: Select all

 window.resize(250, 150);
 window.setWindowTitle("Simple example");
 window.show();


کدهای بالا  اول ابزارکمون رو ریساز میکنه و عرض و ارتفاشو تنظیم میکنه بعد عنوان ابزارکمون که در اینجا همون پنجره اصلیمون رو تنظیم میکنه و بعد اونو نمایش میده.
Code: Select all

return app.exec();


و در اخر توسط این کد حلقه اصلی برنامه شروع میشه.دوستانی که برنامه های c حساس به رویداد نوشتن میدونن که برای اینکه برنامه مدام رخ دادن رویدادها رو چک کنه باید در یک حلقه بی نهایت قرار بدیمش ، من فکر میکنم قطعه کد بالا یه همچین روالی رو شروع میکنه!
اینها چیزایی بود که من از این کدها پیدا کردم و شاید توضیحات خیلی بیشتری داشته باشن!
در اخرین مورد میخوام راجع به چیستی qmake که باهاش برناممون رو کامپایل کردیم بحث کنم:
qmake  ابزاری که شرکت Trolltech  برای اسان تر کردن روند تولید برنامه در همه پلتفرم ها ایجاد کرده!
qmake عمل ساختن makefile برای پروژتون رو اتوماتیک کرده انچنان که فقط با چند خط اطلاعات میتونه makefile  بسازه!

برای کسانی که makefile روند کلی کامپایل رو نمیدونن متن زیر رو میارم:
کامپایلر
کامپایلرها وظیفه تبدیل زبانهای سطح بالا و قابل درک برای انسان را به سطح پایین ترین زبان، یعنی زبان ماشین به عهدا دارند.
معمولا (تقریبا همیشه!) پروژه های نرم افزاری از بیش از یک فایل تشکیل شده اند که هر کدام بخشی از متن برنامه یا Source Code را در بر دارد. شما باید ابتدا هر فایل نوشته شده را جداگانه به وسیله کامپایلر به زبان ماشین تبدیل کنید. اصطلاحا به فایلهایی که در این مرحله تولید می شود، فایل Object می گویند. محتوای لین فایلها به زبان ماشین است، اما هنوز قابل اجرا توسط کامپیوتر نیستند! چرا؟ چون هر کدام از آن فایلها یا وابستگیهایی در فایلهای دیگر دارند که در این وضعیت برای سیستم غیر قابل تشخیص است، یا اساسا به تنهایی مفهومی ندارند که قابل اجرا باشند.مثلا ممکن است یکی از آنها حاوی مجموعه ای از دستورات (اصطلاحا تابع) باشد که روی ورودی خود پردازش خاصی انجام می دهند و نتیجه را برمی گردانند. اما این توابع زمانی مفید هستند که از جایی فراخوانی شوند و احتمالا فراخوانی تابع مورد نظر ما هم از داخل یکی از فایلهای Object دیگر صورت می گیرد.
در اینجاست که شما باید با کمک لینکر آن فایلهای Object را به ترتیب مناسب به هم پیوند دهید تا در نهایت به یک فایل اجرایی دست پیدا کنید.
یک مثال عملی
فرض کنید برنامه ای به زبان C در یک فایل به نام main.c نوشته اید و حالا می خواهید آن را به فایل قابل اجرا توسط کامپیوتر تبدیل کنید. این کار به سادگی و در دو خط دستور (که می شود آنها را در یک خط هم خلاصه کرد) قابل اجرا است:
$ gcc -c main.c
$ gcc -o main main.o
دستور اول از فایل C به نام main.c یک فایل Object به نام main.o می سازد و دستور دوم نیز از فایلmain.o یک فایل اجرایی به نام main می سازد که حالا دیگر می توانید آن را اجرا کنید.
اما حالا فرض کنید که فایل main.c وابستگیهایی هم به دو فایل دیگر به نامهای dep.c و dep.h داشته باشد:
$ gcc -c main.c
$ gcc -c dep.c
$ gcc -o main main.o dep.o
می بینید که یک مرحله به مراحل کامپایل برنامه اضافه شد.
حالا فرض کنید که به جای یک فایل یا سه فایل، این پروژه از دهها و صدها فایل تشکیل شده باشد. چند ساعت باید وقت صرف کنید تا پروژه را کامپایل کنید، تازه اگر همه چیز به خوبی پیش برود؟
به همه اینها اضافه کنید گزینه های خط دستور کامپایلر را که گاهی کار کامپایل از خط دستور را به فرایندی بسیار پیچیده تبدیل می کنند.
حالا هربار که تغییراتی دربرنامه بدهید، باید همه کارها را از اول انجام دهید. یا به اندازه کافی فصفر بسوزانید و به خاطر داشته باشد که هر بار در کدام فایلها تغییر داده اید تا فقط آنها را کامپایل کنید و کمی وقت کمتری صرف کنید! آیا راه بهتری نیست؟
Makefile
چقدر خوب می شد اگر می توانستید همه این دستورات کامپایل را فقط یک بار تایپ کنید. خبر خوب! می توانید همه این دستورات را در فایل که به Makefile معروف است قرار دهید و برنامه ای به نام make را اجرا کنید تا آن برنامه خودش از روی Makefile برایتان بقیه کارها را انجام دهد و خروجی نهایی قابل اجرا را بسازد.
پس Makefile مجموعه دستورات لازم برای کامپایل یک پروژه نرم افزاری است که در قالبی خاص در یک فایل متنی ذخیره شده است.
به خصوص اگر شما برنامه نویس نباشید، برایتان قابل توجه خواهد بود که مجبور نیستید هربار اینهمه دستورات عجیب و غریب را تایپ کنید و تنها با تایپ دستور make زندگی برایتان آسان می شود.
make
همانطور که اشاره شد، make برنامه ای است که از روی Makefile کار کامپایل پروژه را انجام می دهد. در کل دو مزیت عمده می توان برای make در نظر گرفت:
۱/همانطور که قبلا هم گفتم با استفاده از Makefile کارهای سخت (نوشتن دستورات پیچیده کامپایل) فقط یکبار انجام می شود.
۲/make از روی برچسب زمانی فایلهای سورس و Object تشخیص می دهد که کدامیک از فایلها نیاز به دوباره کامپایل شدن دارند و به این ترتیب از کامپایل مجدد و غیر ضروری فایلهایی که از زمان آخرین کامپایل تغییری نکرده اند، جلوگیری می شود. چراکه فرایندکامپایل به ویژه در کامپیوترهای قدیمی و با پروژه های بزرگ کاری بسیار وقت گیر است.
make بعد از فراخوانی به ترتیب دنبال یک فایل با یکی از نامهای GNUmakefile، makefile یا Makefile می گردد تا دستورات کامپایل را از داخل آن خوانده و اجرا کند.

برگرفته از سايت :shabaneh.ir

از qmake میتونیم در اکثر پروژهای نرم افزاری استفاده کنیم و لزوما نباید با Qt باشن.
برای بدسا اوردن اطلاعات بیشتر راجع به qmake به
http://doc.trolltech.com/4.2/qmake-manual.html
مراجعه کنید.

Last edited by pesarkhobeee on Tue Aug 11, 2009 5:55 pm, edited 1 time in total.
User avatar
pesarkhobeee
Posts
22
Karma
0
نمیدونم چرا اینقدر با ادیتور اینجا مشکل دارم  >:(کسی نظری نداره چطوری راحتتر میشه تو اینجا با ادیتورش کار کرد؟ :-[
User avatar
imported3-atmahasan
Posts
42
Karma
0
این تاپیک جدا فوق العادست تشکر از همه دوستانی که پر بارش میکنند

پکیج طراحی با کیوت !

Qt Creator IDE
Qt libraries
Qt development tools

Download Qt SDK for Linux/X11 32-bit

روش نصب :

Code: Select all
chmod u+x qt-sdk-linux-x86-opensource-2009.03.1.bin


Code: Select all
./qt-sdk-linux-x86-opensource-2009.03.1.bin


;)

Last edited by Anonymous on Wed Sep 02, 2009 2:12 am, edited 1 time in total.


Image
User avatar
pesarkhobeee
Posts
22
Karma
0

اموزش QT جلسه سوم

Thu Aug 13, 2009 7:55 pm
خوب امروز میخوام برنامه قبلی رو کمی کاملتر کنم و مقداری از خصوصیاتشو تنظیم کنم ! برنامه قبلی رو به این صورت بازنویسی میکنیم:
Code: Select all
#include <QApplication>
#include <QDesktopWidget>
#include <QWidget>
#include <QIcon>
int main(int argc, char *argv[])
{
int WIDTH = 250;
int HEIGHT = 150;
int screenWidth;
int screenHeight;
int x, y;
QApplication app(argc, argv);
QWidget window;
QDesktopWidget *desktop = QApplication::desktop();
screenWidth = desktop->width();
screenHeight = desktop->height();
x = (screenWidth - WIDTH) / 2;
y = (screenHeight - HEIGHT) / 2;
window.resize(WIDTH, HEIGHT);
window.move( x, y );
window.setWindowTitle("Center");
window.setToolTip("Center window");
window.setWindowIcon(QIcon("icon.jpg"));
window.show();
return app.exec();
}



Code: Select all
#include <QdesktopWidget>


توسط این کتابخانه ما به مقادیر خصوصیات دسکتاپمان دسترسی پیدا میکنیم!  در این مثال برای فهمیدم طول و عرض مانیتور!
Code: Select all
#include <QIcon>


برای اینکه بتوانیم به برنامه خودمون یک icon  بدیم باید این کتابخونه رو استفاده کنیم.
Code: Select all
int WIDTH = 250;
int HEIGHT = 150;
int screenWidth;
int screenHeight;
int x, y;


دو متغیر اول طول عرض پجره برنامه مان را ذخیره میکنند و دو متغیر دوم برای اینست که طول و عرض دسکتاپمان را ذخیره کنند و دو متغیر x و y برای ذخیره محل قرار گیری پنجره است.
Code: Select all
QDesktopWidget *desktop = QApplication::desktop();
screenWidth = desktop->width();
screenHeight = desktop->height();


کار این کدها بدست اوردن طول و عرض دسکتاپ است ولی دقیقا نفهمیدم چه طوری ؟ اومده یه اشاره گر به نام  desktop  ساخته و بعد توسط شی ء گرایی فکر کنم ارجاعش داده به دسکتاپ واقعی (فکر کنم)


Code: Select all
x = (screenWidth - WIDTH) / 2;
y = (screenHeight - HEIGHT) / 2;


این خط ها مختصات نقطه ای رو که پنجره برنامه در انجا قرار گیرد حساب میکند.
Code: Select all
window.move( x, y );


این کد پنجره برنامه را به مختصات مورد نظر هدایت میکند.
Code: Select all

window.setToolTip("Center window");


عمل تنظیم tooltip پجره را انجام میدهند.
Code: Select all
window.setWindowIcon(QIcon("icon.jpg"));


در این کد ما عکس icon.jpg را که در همان پوشه برنامه است به عنوان ایکون برنامه تعیین میکنیم.

خوب در این قسمت ما تونستیم پنجره ای رو در قسمت قبل ساختیم بیشتر شخصی سازی کنیم!
علی یارتون
Image

Last edited by pesarkhobeee on Fri Aug 14, 2009 6:05 am, edited 1 time in total.


Bookmarks



Who is online

Registered users: bartoloni, Bing [Bot], Google [Bot], Sogou [Bot], Yahoo [Bot]