تبلیغات
Qt Developer Blog - Signals and Slots part Two
 
Qt Developer Blog
کیوتی ساده و آسان برای همه
                                                        
درباره وبلاگ

در این وبلاگ کیوتی که مجموعه ای از کلاس ها برای برنامه نویسی دلپذیر تر با سی پلاس پلاس هست آموزش داده میشود
مدیر وبلاگ : سعید دادخواه
نظرسنجی
آموزش ها به چه صورتی باشد






آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :
یکشنبه 26 دی 1389 :: نویسنده : سعید دادخواه
در مورد سیگنال و اسلات نکات زیر مهم هستند 
اولا اینکه سیگنال ها میتونند وقتی  emit میشند (فریاد زده میشند )یه مقداری رو هم بفرستند . مثلا در مورد لاین ادیت سیگنالی هست با عنوان textChanged . این سیگنال وقتی فرستاده میشه که متن درو ن یه جعبه متن تغییر کنه خوب ما که فقط بدون متن این جعبه متن تغییر کرد دردی ازمون دوا نمیشه ما نیاز به این داریم که بدونیم متن جدید چیه 
مسلما.
ادامه مطلب رو ببینید
نکته دیگه این که برای اینکه یه اسلات به یه سیگنال وصل بشه یه شرط داره اونم این که  تعداد پارامترهایی که یه سیگنال ارسال میکنه باید با تعداد پارامتر های یه اسلات برابر باشه یک; دوما نوع اونا هم یکی باشه .سوما ذکر نام برای این نوع ها ایراد داره . به شکل زیر نگاه کنید
signal
در مورد کد بالا نکات زیر قابل مطرح کردنه :
۱.کلاس QSlider که قبلا ندیده بودیم . این کلاس همون طور که میبینید یه ویدجت هستش که یه گیزمو برای حرکت داره و قابلیت اینو داره که ما مثلا تنظیم کنیم که رنجش از چند تا چند باشه setRange(int, int) in QSlider class
وقتی مقدارش تغییر میکنه سیگنالی میفرسته مبنی بر این که مقدار من تغییر کرد و این رو با یه مقدار int بیان میکنه . 
۲.کلاس QLabel حاوی یه اسلاتی با نام setNum هستش که میتونید وقتی قراره یه عدد به جای متن اون نمایش داده بشه از اون استفاده کنید  و این تابع ( اسلات ) یه مقدار int میگیره و این کارو انجام میده. 
۳.هر اسلاتی در واقع یه تابع هست پس شما میتونید به صورت معمولی هم صداش بزنید.
۴. همون طور که میبینید تعداد پارامتر هایی که سیگنال فرستاده و نوعشون دقیقا با تعداد و نوع اسلات گیرنده برابر هستش
۵. اگه اینجا میگفتم  که  SIGNAL(valueChanged( int newNum ), &lbl و ...  برنامه کامپایل نمیشد وگیر میداد . پس تعیین اسم نیاز نیست.
حاصل این تیکه کد اینه که با حرکت دادن سلایدر مقدار داخل label تغییر میکنه
خوب موضوع بعدی مون شاید این باشه که چطوری خودمون یه ویدجت دلخواه تعریف کنیم و چطوری خودمون اسلات و سیگنال تعریف کنیم
خسته نباشید




نوع مطلب : عمومی، 
برچسب ها : سیگنال، اسلات، کیوتی، کیوت، آموزش کیوتی، آموزش کیوت، آموزش کیوتی به زبان فارسی، signal، slot، SIGNAL، SLOT،