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



 
امتياز موضوع :
  • 0 رأي - معدل امتيازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش توابع Qt قسمت دوم
2004-08-05, 02:23 AM,
ارسال : #1
آموزش توابع Qt قسمت دوم
فصل دوم : Calling it Quits

در فصل اول يك پنجره ساختيم، حالا مي خواهيم امكان خروج موفق را هنگامي كه كاربر به برنامه مي گويد، با آن اضافه كنيم. همچنين از يك قلم كه جذابتر از قلم پيش فرض است استفاده مي كنيم.
[ltr]
کد :
#include    <qapplication.h>
#include    <qpushbutton.h>
#include    <qfont.h>

int    main ( int    argc , char   **argv )
{
    QApplication     a ( argc , argv );
    QPushButton    quit ( “Quit” , 0 );
    quit.resize ( 75 , 30 );
    quit.setFont ( QFont ( “Times”, 18, QFont::Bold ) );
    QObject::connect ( &quit , SIGNAL ( clicked( ) ) , &a , SLOT ( quit( ) ) );
    a.setMainWidget ( &quit );
    quit.show( );
    return    a.exec( );
}
[/ltr]
بررسي خط به خط برنامه :
[ltr]
کد :
#include    <qfont.h>
[/ltr]
وقتي كه برنامه از QFont استفاده مي كند، نياز است تا فايل qfont.h به آن ضميمه شود.تجرد قلم (font abstraction) در Qt خيلي با ترس و واهمه اي كه توسط محيط X ايجاد شده است متفاوت است، و باركردن و استفاده از قلم ها در سطح بالايي بهينه سازي شده است.
[ltr]
کد :
QPushButton     quit ( “Quit” , 0 );
[/ltr]
در اين لحظه، دكمه با Quit نامگذاري مي شود و به درستي اين همان كاري است كه كاربر با زدن اين دكمه از برنامه مي خواهد. اين يك تصادف نيست.بازهم مقدار صفر را به عنوان والد قرار داده ايم، تا زماني كه دكمه به عنوان پنجره اي در بالاترين سطح قرار دارد.
[ltr]
کد :
Quit.resize ( 75 , 30 );
[/ltr]
ما اندازه ديگري را براب دكمه انتخاب كرده ايم چون اندازه متن مورد نظر از Hello World! كمي كوچكتر است. همچنين مي توانيم از تابع QFontMetrics براي تنظيم اندازه واقعي استفاده كنيم.
[ltr]
کد :
quit.setFont ( QFont ( “Times” , 18 , QFont::Bold ) );
[/ltr]
در اينجا نيز يك قلم با اندازه 18 و نوع توپر(Bold) از خانواده Times را براي دكمه انتخاب كرده ايم.توجه كنيد كه ما قلم را بي درنگ و در محل ساختيم.
همچنين اين امكان وجود دارد كه قلم پيش فرض تمام برنامه را تغيير دهيم( با استفاده از QApplication:ConfusedetFont( ) ).
[ltr]
کد :
QObject::connect ( &quit , SIGNAL ( clicked( ) ) , &a , SLOT ( quit( ) ) );
[/ltr]
اتفاقاً connect( ) يكي از خصيصه هاي اصلي و مهم Qt است.توجه كنيد كه connect( ) يك تابع ايستا (static) در QObject است.آنرا با تابع connect( ) در كتابخانه سوكت (socket Library) اشتباه نگيريد.اين خط يك راه ارتباطي بين دو موضوع Qt برقرار مي كند( اشيائي كه به طور مستقيم و يا غير مستقيم QObject را به ارث مي برند) . هر موضوع Qt مي تواند هر دوي سيگنال (signal) ( براي فرستادن پيغامها) و اسلات (slot) (براي دريافت پيغامها) را داشته باشد. همه اشياء(Widgets) موضوعهاي Qt هستند. آنها شيء QWidget را به ارث مي برند كه اينها هم خود به نوبت QObject را به ارث مي برند.دراينجا، سيگنال clicked( ) از شيء quit به اسلات quit( ) از شيء a متصل شده است، بنابراين زماني كه دكمه فشرده مي شود برنامه خارج مي گردد.
سيگنالها و اسلاتها در جايگاه خود به تفصيل شرح داده خواهند شد.

عملكرد برنامه:
وقتي كه شما اين برنامه را اجرا مي كنيد، يك پنجره هموار و كوچكتر نسبت به فصل اول و يك دكمه روي آن خواهيد ديد.
براي كامپايل برنامه به قسمت كامپايل در فصل اول مراجعه كنيد.
تمرينات:
سعي كنيد اندازه پنجره را تغيير دهيد.برروي دكمه كليك كنيد. آيا سيگنالهاي ديگري در QPushButton وجود دارد كه شما بتوانيد آنرا به quit متصل كنيد؟
نكته : QPushButton بيشتر عملكرد و رفتار خود را از QButton به ارث مي برد. حالا شما براي فصل سوم آماده هستيد.
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-05, 07:12 AM,
ارسال : #2
 
آقا دستت درد نکنه ،‌خیلی زحمت کشیدی ....
:lol:

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

آموزش بدون محدودیت
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-08, 12:29 AM,
ارسال : #4
 
خواهش مي شود عزيزان Big Grin :wink:
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2004-08-08, 12:39 AM,
ارسال : #5
 
ممنون از اینکه زحمت می کشید .
منتظر قسمت سوم هستیم :wink:

To Follow The Path
Look To The Master
Follow The Master
Walk With The Master
See Through The Master
Become The Master
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ


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


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