لطفا وارد شوید یا ثبت‌نام کنید تا به انجمن‌ها دسترسی کامل داشته باشید.



 
امتياز موضوع :
  • 0 رأي - معدل امتيازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش توابع Qt
2004-08-04, 03:12 AM,
ارسال : #1
آموزش توابع Qt
با عرض سلام خدمت دوستان عزيز. چند وقتي هست كه دنبال يه مرجع خوب براي يادگيري Qt مي گردم. ولي تا كنون بغير از راهنماي خودش چيزي پيدا نكردم. تصميم گرفتم كه آنرا ترجمه كنم. زياد هم ترجمم خوب نيست ولي از هيچ چي بهتره. دوستان متخصص يه نظري بندازن ببينن اگر خوبه كه به كارم ادامه بدم و اونارو روي سايت براي عزيزان بزارم. لطفا اشكالات را هم بيان كنيد.
با تشكر.

روش يادگيري Qt

ما فرض مي كنيم كه شما زبان C++ را مي دانيد!
بهترين راه براي يادگيري Qt خواندن كتاب موثق و رسمي Qt ، C++ GUI Programming with Qt 3 (ISBN 0-13-124072-2) است.اين كتاب پوششي كامل از برنامه نويسي توسط Qt بصورت كامل از “Hello Qt” تا جنبه هاي پيشرفته از قبيل سرنخ كشي، برنامه نويسي دو و سه بعدي ، برنامه نويسي شبكه، و XML را آماده مي كند.
اگر شما نمي توانيد اين كتاب را داشته باشيد، ويا اينكه نمي توانيد منتظر رسيدن آن بمانيد ما براي شما پيشنهادي داريم.
ابتدا Whitepaper Qt را بخوانيد. اين كار يك ديدگاه كلي از امكانات Qt را براي شما فراهم مي آورد و چيزهاي كوچكي كه روش Qt در برنامه نويسي را تشكيل مي دهند، به شما نشان مي دهد. اين كار كمك زيادي به شما مي كند.
اگر شما مي خواهيد كه كاملا توسط C++ برنامه بنويسيد، و رابط هاي خود را توسط كد نويسي و بدون كمك گرفتن از ابزارهاي طراحي ايجاد كنيد، خود آموزهارا بخوانيد. خودآموز 1 طراحي شده است تا شما را به برنامه نويسي Qt از طريق تاكيد بر كد نويسي برساند و بيشتر از يك تور معرفي جنبه ها مي باشد.خودآموز2 مثالهاي واقعي بيشتري را به نمايش مي گذارد كه روش ساختن منوها،نوارابزارها، بازيابي و ذخيره فايلها، كادرها و غيره را نشان مي دهد.
اگر مي خواهيد كه رابط كاربر خود را توسط يك ابزار كمكي طراحي كنيد، اقلا چند فصل اول راهنماي Qt Designer را مطالعه كنيد.بعد از اين، امتحان كردن خودآموزهاي ناب C++ (خودآموز1 و 2) كه در بالا نامبرده شدند، ارزش دارد.
تا اينجا شما چند برنامه كاري كوچك را ايجاد خواهيد كرد و برنامه نويسي Qt را احساس خواهيد نمود.شما مي توانيد بي درنگ روي پروژه هاي خود كار كنيد ولي ما پيشنها دمي كنيم كه دومورد از Key Overview را بخوانيد: Qt Object Model و Signals and slots.
در اين نقطه پيشنهاد مي كنيم كه Overviewهايي را كه به پروژه شما مربوط مي شوند مطالعه كنيد.همچنين كنكاش در متن برنامه هايي كه با پروژه شما ارتباط معنايي دارند مي تواند براي شما مفيد واقع گردد.همچنين مي توانيد سورس كدهاي Qt را نيز تا آنجا كه برايتان آماده شده را مطالعه نماييد.
اگر برنامه demo ( واقع در $QTDIR/examples/demo) را اجرا كنيد اشياء و چيزهاي زيادي از Qt را در عمل خواهيد ديد.
Qtهمراه خود اسناد زيادي دارد، با محيطي فراتر از متن، كه شما مي توانيد به آساني مسير خود به سوي آنچه كه به آن علاقه داريد را مشخص سازيد.
قسمتي ازاين اسنادكه ممكن است بيشتر استفاده كنيد مرجع API است.هر لينك راهي ديگر را براي پيمايش مرجع API فراهم مي كند.همه آنها را امتحان كنيد تا ببينيد كدام كار براي شما بهتر است.ممكن است دوست داشته باشيد Qt Assistant را نيز امتحان كنيد.اين ابزار توسط Qt مهيا گشته است و دسترسي كامل به Qt API، ونيز تسهيلات جستجوي كاملا مبتني بر متن را فراهم مي سازد.

خودآموز (1) Qt
اين خودآموز مقدمه اي از برنامه نويسي رابطهاي كاربري گرافيكي (GUI) توسط ابزارهاي Qt را به شما ارائه مي دهد. همه چيز را پوشش نمي دهد تنها بر آموزش فلسفه برنامه نويسي GUI تأكيد دارد و جنبه هاي Qt را تا اندازه نياز معرفي كرده است. بعضي از جنبه هايي كه معمولا استفاده مي شدند هيچگاه در اين خودآموز استفاده نشده است.
بخش اول با برنامه 10 خطي Hello-World و هر بخش ديگر يك يا مقداري بيشتر از مفاهيم را معرفي مي كنند.تا اينكه در بخش 14، 10 خط بخش اول به يك بازي 650 خطي مبدل مي گردد.
اگر كاملا در Qt تازه كار هستيد وهنوز قسمت روش يادگيري Qt را مطالعه نكرده ايد، لطفا آنرا مطالعه كنيد.
فصلهاي خودآموز:
1- Hello, World!
2- Calling it Quits
3- Family Values
4-Let There Be Widgets
5- Building Blocks
6- Building Blocks Galore!
7- One Thing Leads to Another
8- Preparing for Battle
9- With Cannon You Can
10- Smooth as Silk
11- Giving it a Shot
12- Hanging in the air the way Bricks don’t
13- Game Over
14- Facing the wall
اين بازي كوچك خيلي شبيه به يك برنامه GUI مدرن نيست. اين بازي از تكنيكهاي GUI خوبي برخوردار است، اما بعداز اينكه شما روي تمام اين برنامه كار كرديد، ما به شما پيشنهاد مي كنيم كه خودآموز 2 را مطالعه كنيد. خودآموز دوم كمي رسمي تر است كه جنبه هايي از يك برنامه كامل از قبيل منوها، نوارابزارها، باركردن و ذخيره كردن، رابطها و غيره را پوشش مي دهد.


فصل اول : Hello, World

اولين برنامه يك Hello-World ساده است. تنها شامل كمترين چيزهايي است كه شما براي بالاآوردن و اجراكردن يك برنامه Qt نياز داريد.
[ltr]
کد :
#include    <qapplication.h>
#include    <qpushbutton.h>

int    main(int argc,char **argv)
{
    QApplication   a(argc,argv);
    QPushButton   hello(“Hello World”,0);
    Hello.resize(100,30);
    a.setMainWidget(&hello);
    hello.show();
    return a.exec();
}
[/ltr]
بررسي خط به خط برنامه:
[ltr]
کد :
#include    <qapplication.h>
[/ltr]

اين خط تعريف كلاس QApplication را ضميمه مي كند. به درستي در هر برنامه كه از Qt استفاده مي كند يك شيء QApplication وجود دارد. QApplication منابع عمومي گوناگون برنامه را مديريت مي كند، از قبيل قلم پيشفرض و نشانگر موس.
QPushButton يك دكمه فشاري GUI كلاسيك است كه كاربر مي تواند آنرا فشار دهد يا رها كند. اين شيء خودش لمس كردن و ظاهرش را مديريت مي كند، همانند ديگر اشياء Qt (QWidget).يك شيء، يك موضوع رابط كاربر است كه مي تواند ورودي كاربر را پردازش كند و اشكال گرافيكي را ترسيم نماييد. برنامه نويس مي تواند تمام موارد موبوط به ظاهر و كارايي آن و همچنين خيلي خصوصيت هاي كوچك آنرا از قبيل رنگ تغيير دهد، همچنين محتويات شيء را. يك QPushButton به دوصورت متني (Text) و يا گرافيكي (QPixmap) ظاهر گردد.
[ltr]
کد :
int  main(int  argc, char  **argv)
{
[/ltr]
تابع main() نقطه ورودي برنامه است.همچنين وقتي از Qt استفاده مي كنيد، تابع main()، تنها نياز به اجراي بعضي از انواع مقداردهي هاي اوليه قيل از انتقال كنترل برنامه به كتابخانه Qt دارد، هريك در آن وقت به برنامه در مورد عملكرد كاربر از طريق رخدادها(Events) خبر مي دهند.
argc تعداد آرگومانهاي خط دستور و argv يك آرايه از آرگومانهاي خط دستور است. اين يكي از مشخصه هاي C/C++ مي باشد.مخصوص به Qt نيست. بنابراين Qt نياز به پردازش اين آرگومانها دارد(به زير نگاه كنيد):
[ltr]
کد :
QApplication   a ( argc ,  argv );
[/ltr]
a بيانگر QApplication اين برنامه است.اينجا a ساخته شده و بعضي از آرگومانهاي خط دستور از قبيل -display در محيط X را پردازش مي كند.توجه كنيد كه تمام آرگومانهاي خط دستور توسط Qt تشخيص داده شده و از argv حذف مي شوند (بنابراين argc نيز كاهش مي يابد). براي دستيابي به اسناد جهت اطلاعات بيشتر به QApplication::argv() مراجعه كنيد.
توجه كنيد كه اين مهم است كه قيل از هر قسمت پنجره اي كه توسط Qt استفاده مي شود ابتدا بايد شيء QApplication ايجاد گردد.
[ltr]
کد :
QPushButton   hello ( “Hllow  World! “ , 0 );
[/ltr]
دراينجا، بعداز QApplication، اولين مجموعه پنجره اي ظاهر مي گردد: يك دكمه فشاري ساخته مي شود.
دكمه فشاري براي نشان دادن متن " !Hello World " مستقر شده و براي خود يك پنجره است ( براي آنكه سازنده (Constructor) مقدار صفر رابراي پنجره والد مشخص كرده است، فضايي كه هر دكمه بايد جاگزيند).
[ltr]
کد :
Hello.resize(100,30);
[/ltr]
دكمه تنظيم مي شود تا 100 پيكسل عرض و 30 پيكسل طول داشته باشد ( بعلاوه قالب پنجره اصلي). دراين جا ما به مكان دكمه توجهي نمي كنيم، و مقدار پيشفرض را مي پذيريم.
[ltr]
کد :
a.setMainWidget ( &hello );
[/ltr]
دكمه فشاري به عنوان شيء اصلي براي برنامه انتخاب مي شود.اگر كاربر شيء اصلي دارد، برنامه خارج مي گردد. شما مجبوربه داشتن شيء اصلي نيستيد ولي بيشتر برنامه ها يك شيء اصلي دارند.
[ltr]
کد :
Hello.show();
[/ltr]
يك شيء هيچگاه در هنگام ساختن قابل ديدن نيست. شما بايد آنرا با show() قابل ديدن نماييد.
[ltr]
کد :
return   a.exec();
[/ltr]
اينجا جايي است كه تابع main() كنترل برنامه را به Qt منتقل مي كند، و exec() كنترل را زماني كه برنامه خارج مي گردد باز مي گرداند.
در exec() ، Qt رخدادهاي سيستم را گرفته و پردازش مي كند و به شيء هاي مربوطه ارسال مي دارد.
[ltr]
کد :
}
[/ltr]
حالا شما بايد برنامه را كمپايل و اجرا نماييد.

كمپايل برنامه:

براي كمپايل برنامه C++ شما نياز به ساختن يك makefile داريد. راحتترين راه براي ساختن makefile براي Qt استفاده از ابزار ساختن qmake كه توسط Qt تهيه شده است، مي باشد.اگر شما main.cpp را در دايركتوري خودش ذخيره كرده ايد، تنها كاري كه بايد انجام دهيد اين است:
[ltr]
کد :
qmake   -project
qmake
[/ltr]
اولين دستور به qmake مي گويد كه يك فايل .pro (project) بسازد. دستور دوم به آن مي گويد كه يك makefile مبتني بر فايل پروژه بسازد. حالا شما مي توانيد با تايپ دستور make (يا nmake اگر از visual stdio استفاده مي كنيد) برنامه را كامپايل كنيد و سپس اولين برنامه Qt خود را اجرا نماييد!

عملكرد برنامه :

وقتي كه آنرا اجرا كرديد، يك پنجره كوچك را خواهيد ديد كه يك دكمه پر شده است، و شما مي توانيد روي اين دكمه كلمات مشهور يعني Hello World! را بخوانيد.

تمرينات:

سعي كنيد اندازه پنجره را تغيير دهيد. دكمه را فشاردهيد. اگر محيط X را اجرا كرده ايد، سعي كنيد برنامه را با گزينه geometry - اجرا كنيد( براي مثال، geometry 100x200+10+20 - ) .
حالا شما آماده خواندن فصل دوم مي باشيد.[/b]
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-04, 02:01 PM,
ارسال : #2
 
يعني خوب نبود!!! :cry: :?:
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-04, 02:09 PM,
ارسال : #3
 
حرکت خوبی را شروع کردی و امیدوارم ادامه‌دار باشه. اگه اجازه بدید اونو توی قسمت مقالات سایت هم اضافه می‌کنم به صورت مقالات دنباله دار... موفق باشید. Smile

[ltr]Life *free = new Life(const long OpenSource);[/ltr]
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-04, 02:19 PM,
ارسال : #4
 
دست شما درد نکنه .من الان این را دیدم .واقعا خوب بود .
براتون آرزوی موفقیت می کنم .
موفق باشید

To Follow The Path
Look To The Master
Follow The Master
Walk With The Master
See Through The Master
Become The Master
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-04, 02:29 PM,
ارسال : #5
 
ممنون از زحمات شما ...
خیلی خوب بود.
موفق باشید.

آموزش بدون محدودیت
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-04, 02:36 PM,
ارسال : #6
 
آقا دستت درد نکنه امید وارم بازم ادامه داشته باشه ، خیلی جالب بود چون چند روزی هست که دارم درباره ی QT می خونم (شاید تو یه پروژه رام بدن!) ، خلاصه خیلی چسبید .
منتظر بخش های بعدی هستم .

[ltr]
$Nəvid$
In a world without any fences or walls,
Who needs gates or windows ?
گنو ایران | لیست مقالات فارسی گنو ایران |
[/ltr]
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-04, 02:36 PM,
ارسال : #7
 
ممنون ، ما منتظر مقالات بعدي شما هستيم .

[ltr]
Smashing all Kernel 2.x
[/ltr]
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-04, 02:44 PM,
ارسال : #8
 
آقا عالي بود،دستتان درد نکنه...اگر ميتوانيد ادامه بدين...(انشاا...يک مقاله خوب ميشه) Big Grin Smile Tongue

لطفا قبل از اينکه سؤالات خود را در انجمن مطرح کنيد،‌حتما قوانين انجمن‌ها را مطالعه فرماييد.
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-04, 05:47 PM,
ارسال : #9
 
خیلی عالی بود . همانطور که بچه ها گفتن ای کاش ادامه داشته باشه... Big Grin


irix@Hell:~$ mkfs -t Free /body/.mind && mount -o rw /body/.mind /FreeMind
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-05, 02:13 AM,
ارسال : #10
 
از لطف شما عزيزان بسيار متشكرم.
باعث دلگرمي من شد. حتما تمام سعي خودم را مي كنم.
آقا آلن من كي باشم كه به شما اجازه بدم. هر جور كه راحتيد.
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-19, 10:36 AM,
ارسال : #11
Perfect
دمت گرم مشتی . حال دادی .
ما منتظر دومیش هستیم . هیچ جا نمی ریم همینجا هستیم . :mrgreen:
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-19, 11:24 AM,
ارسال : #12
 
دوست عزیز تا پنجمیش هم اومده .ولی هنوز منتقل به این بخش نشده .فعلا در بخش عمومی می توانید مطالعه کنید.
موفق باشید

To Follow The Path
Look To The Master
Follow The Master
Walk With The Master
See Through The Master
Become The Master
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-19, 11:58 AM,
ارسال : #13
 
منتقل شد...به راحتي از بخش(( لينوکس و برنامه نويسي)) مطالعه کنيد...

لطفا قبل از اينکه سؤالات خود را در انجمن مطرح کنيد،‌حتما قوانين انجمن‌ها را مطالعه فرماييد.
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-26, 03:12 AM,
ارسال : #14
 
با عرض سلام.
يا عرض پوزش فراوان از عزيزان.
من به علت پاره اي مشكلات خانوادگي و . . . كمتر مي توانم به اينترنت وصل شوم. بايد مرا ببخشيد كه خيلي دير كردم. ايندفعه قسمت ششم و هفتم را يكدفعه به حضورتان پيشكش مي كنم. بازهم مرا ببخشيد.
با تشكر. عضو ناچيزي از سايت.
:oops: :oops: :oops: :oops: :oops:
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-27, 01:03 AM,
ارسال : #15
 
امیدوارم که در زندگی به هیچ مشکلی بر نخورید .
از زحمات شما ممنونم.
با این کار کمک بزرگی به ما می کنید.
موفق باشید

To Follow The Path
Look To The Master
Follow The Master
Walk With The Master
See Through The Master
Become The Master
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-27, 02:30 PM,
ارسال : #16
 
دستتون درد نکنه که با این مشکلات باز هم کار خودتون رو انجام می دید.


irix@Hell:~$ mkfs -t Free /body/.mind && mount -o rw /body/.mind /FreeMind
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ


رفتن به انجمن :


کاربران در حال مشاهده موضوع : 1 مهمان