View Full Version : سوال: چرا كد براي حداكثر كردن فرم عمل نمي كنه؟
complexcoding
چهارشنبه 22 آذر 1391, 11:54 صبح
دوستان سلام
من از اين كد براي حداكثر كردن فرم استفاده مي كنم اما فرم ناگهان حداكثر مي شه حدود 1/10 ثانيه دوباره به حالت قبلي بر مي گرده؟ من فكر مي كنم بخاطر تنظيمات Properties هست كه رو اندازه هاي 300 و 500 تنظيم كردم و نمي ذاره تا از طريق كدي فرم بزرگتر بشه !! حالا بايد چي كار كنم؟
http://www.niloblog.com/files/images/my7yaptcxwi2wsqrku.jpg
http://www.niloblog.com/files/images/tyt6kvtpyw4cs62wsnse.jpg
ممنون
alamate_aoal
پنج شنبه 23 آذر 1391, 01:40 صبح
سلام
من فكر مي كنم بخاطر تنظيمات Properties هست كه رو اندازه هاي 300 و 500 تنظيم كردم و نمي ذاره تا از طريق كدي فرم بزرگتر بشه !! حالا بايد چي كار كنم؟این سوالت یا خیلی پیچیده است یا خیلی خیلی ساده! (آنقدر که باعث تورم سر این یارو شد --> :متعجب: )
محدودیتی که برای پهنای فرم گذاشتی رو حذف کن.:لبخند:
complexcoding
پنج شنبه 23 آذر 1391, 08:09 صبح
منظورت مینیمایز هست؟ چشم حذفش می کنم بذار برم خونه فعلا دسترسی ندارم.
complexcoding
شنبه 25 آذر 1391, 07:31 صبح
این کارم انجام دادم اما هیچ اثری نکرد و متاسفانه فرم حداکثر نمی شود؟
returnx
شنبه 25 آذر 1391, 10:07 صبح
منظورتون از حده اکثر کردن فرم همون maximize هست؟! اگه آره از کد استفاده کنید :
this->setWindowState(Qt::WindowMaximized);
یا برای Full Screen کردن:
this->setWindowState(Qt::WindowFullScreen);
complexcoding
شنبه 25 آذر 1391, 12:34 عصر
منظورتون از حده اکثر کردن فرم همون maximize هست؟! اگه آره از کد استفاده کنید :
this->setWindowState(Qt::WindowMaximized);
یا برای Full Screen کردن:
this->setWindowState(Qt::WindowFullScreen);
ممنون اما این کد رو چطوری تو مستندات کیوت سرچ کردید؟ یعنی مال کدوم بخش هست؟
returnx
شنبه 25 آذر 1391, 12:47 عصر
یادم نیست ، از کدوم داکیومنت کیوت این پیدا کردم ، اما شما کافیه تو Qt Assistant دنبال QWidget Class Reference (http://qt-project.org/doc/qt-4.8/QWidget.html)بگردید و دنبال متد Set Window State بگردید یا مستقیما Set Window State رو Search کنید تو Qt Assistant و البته یادم میاد یک Sample کامل تو Sample های Qt هست در مورد Window Flags که بهتون توصیه می کنم اون رو مطالعه کنید...
complexcoding
یک شنبه 26 آذر 1391, 05:55 صبح
ولي نمي دونم چرا حداكثر مي شه مي ره سمت چپ؟ مي خوام همونجايي كه فرم هست حداكثر بشه؟
returnx
یک شنبه 26 آذر 1391, 08:59 صبح
نمیدونم منظورتون چیه!؟ اما برای من که به درستی Maximize میشه فکر کنم شما یکسری از خواص فرم رو تغییر دادید که اینطوری شده...
دقت کنید که،بجز اون کدی که در دو پست قبل گذاشتم نیار به هیچ کد دیگه ای نیست...
complexcoding
یک شنبه 26 آذر 1391, 11:08 صبح
نمیدونم منظورتون چیه!؟ اما برای من که به درستی Maximize میشه فکر کنم شما یکسری از خواص فرم رو تغییر دادید که اینطوری شده...
دقت کنید که،بجز اون کدی که در دو پست قبل گذاشتم نیار به هیچ کد دیگه ای نیست...
یعنی مثلا فرم شما در وسط صفحه نمایش قرار داره و فقط بخوایید از نظر ارتفاع ماکزیمم بشه و از طرف عرض که برای من 300 هست هیچ تغییری نکنه در همان وسط ماکزیمم می شه و به سمت چپ نمی ره؟
برای من :
h:500
w:300
نمی خوام عرض زیاد کنه و فقط ارتفاش زیاد بشه. حالا برای شما چطوری هست ؟ اگر با این خصوصیات بازم در همونجا که فرم هست حداکثر بشه پس Propeties من تغییر کرده؟ باید درستش کنم
returnx
یک شنبه 26 آذر 1391, 12:50 عصر
بازم دقیقا متوجه منظورتون نشدم ، اما با این تکه کد می تونید ، ابتدا فرمتون رو به وسط Screen ببرید و فقط ارتفاع آن را اضافه کنید:
QDesktopWidget *desktop=QApplication::desktop();
QRect scr_rect=desktop->geometry();
this->move((scr_rect.width()-this->width())/2,(scr_rect.height()-this->height())/2-50);//Move To Center Of Screen
int max_height=scr_rect.height();
this->setMaximumHeight(max_height);
this->setGeometry(this->x(),this->y(),this->width(),max_height);//Set max height
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.