PDA

View Full Version : کمک در مورد qlable



jo0ojo0o_iut
یک شنبه 06 دی 1388, 00:59 صبح
بازم سلام
یه مشکل دیگه دارم!
چطوری متن توی qlable رو می تونم عوض کنم

saleh.hi.62
یک شنبه 06 دی 1388, 06:45 صبح
بازم سلام
یه مشکل دیگه دارم!
چطوری متن توی qlable رو می تونم عوض کنم

خیلی ساده

1-دابل کلیک روی label و بعد میتونی کلمه جدیدی تایپ کنی
2-پنجره سمت راست که properties رو نشون میده خاصیت text رو پیدا کن و تغییر بده.

jo0ojo0o_iut
یک شنبه 06 دی 1388, 15:30 عصر
ممنون
ولی می خوام مقدار های متغیر مثلا مقدار Qslider رو نشون بده!

حامد مصافی
دوشنبه 07 دی 1388, 12:56 عصر
myClass::myClass()
{
/*
initilize m_label as QLabel and m_slider as QSlider as members of this QDialog
*/

connect ( m_slider, SIGNAL(valueChanged(int)),
this, SLOT(setLabelText(int) ) );
}
myClass::setLabelText( int value )
{
m_label->setText ( QString::number( value ) );
}



توصيح: كلاس QSlider يك سيگنال با امضاي زير دارد:

void valueChanged ( int )

اين سينگال وقتي برانگيخته مي شود كه مقدار QSlider تغيير كند، با توجه به اينكه مي خواهيد مقدار تغيير يافته را در QLabel نمايش دهيد پس بايد از زمان تغيير آگاه شويد براي اين كار بايد اين سيگنال را به يك اسلات متصل كنيد، اين كار با استفاده از متد connect (كه در QObject تعريف شده است) انجام مي پذيرد. من نام اين اسلات دريافت كننده را setLabelText گذاشتم، چون مي خواهيد از مقدار QSlider كه توسط سيگنال ارسال مي شود استفاده كنيد بايد براي اين مقدار در اسلات متغيري ذكر كنيد؛ من نام اين متغير را value قيد كرده ام. حال تنها كار باقي مانده استفاده از متد setText كلاس QLabel براي تغيير متن است. البته قبل از اين كار بايد با استفاده از متد استاتيك QString::number نوع int را به QString تبديل كنيد.
نتيجه: هنگام تغيير QSlider مقدار در QLabel نمايش داده مي شود.