کنترل تغییر اندازه پنجره



  • p{direction:rtl; text-align:right;font-family:tahoma}. سلام
    در پنجره برنامه تعدادی ویجت قرار داره که باید با تغییر اندازه پنجره در مختصات خاصی قرار بگیرند.
    برای این کار از رویداد resizeEvent استفاده کردم. مثلا یک PushButton که باید در گوشه بالا سمت راست پنجره قرار بگیره:
    @
    void Widget::resizeEvent(QResizeEvent *res){
    btn->move(this->width()-btn->width(),0);
    }
    @

    p{direction:rtl; text-align:right;font-family:tahoma}. با این کار پردازش CPU بسیار بالا میره! بخصوص وفتی تعداد ویجت ها زیاد باشه. دستورات درون این رویداد با هر پیکسل تغییر اندازه پنجره اجرا میشن. اندازه بعضی ویجت ها هم باید نسبت به اندازه پنجره تنظیم بشه.
    با استفاده از Layout ها هم نتونستم طرح مورد نظرم رو اجرا کنم.
    میخوام بعد از پایان Resize یعنی بعد از اینکه کلید ماوس رها شد جابجایی ها انجام بشه تا پردازش کمتری انجام بگیره.



  • p{direction:rtl; text-align:right;font-family:tahoma}. چرا از Layout نمی‌تونی نتیجه بگیری؟



  • p{direction:rtl; text-align:right;font-family:tahoma}. بعضی ویجت ها باید اندازشون ثابت باشه و همیشه در یک نقطه خاص قرار بگیرن. مثلا به فاصله 20 پیکسل از سمت راست پنجره. بعضی ها هم باید اندازه متغییر داشته باشند.
    با Layout نتونستم دقیق تنظیمشون کنم :|



  • p{direction:rtl; text-align:right;font-family:tahoma}. روشی که می‌خوای برای این کار ازش استفاده کنی کاملاً غلطه. از لی‌آوت‌ها استفاده کن.



  • p{direction:rtl; text-align:right;font-family:tahoma}. سعی میکنم ازشون استفاده کنم.
    چطور میشه کاری کرد که با تغییر اندازه جدول اندازه سلول های اون با اندازه جدول مچ بشه؟ به طوری که تمام طول عرض جدول رو پر کنن.
    این دستور میتونه این کار رو انجام بده اما درصورت استفاده از Layout چه موقع باید اجرا بشه؟
    جدول 7 در 6 هست.
    @
    qw->horizontalHeader()->setDefaultSectionSize(qw->width()/7);
    qw->verticalHeader()->setDefaultSectionSize(qw->height()/6);
    @



  • p{direction:rtl; text-align:right;font-family:tahoma}. به‌نظر من دوباره در مورد لی‌آوت‌ها در کیوت بخون. ظاهراً هیچ تصور صحیحی از لی‌آوت نداری.

    p{direction:rtl; text-align:right;font-family:tahoma}. به‌هیچ‌عنوان نباید برای تنظیم اندازه و غیره کد بنویسی. با تنظیم آرایهٔ layoutStretch می‌تونی به نسبت دلخواه اندازه‌ها رو توی یه layout تنظیم کنی.



  • p{direction:rtl; text-align:right;font-family:tahoma}. بله باید بیشتر کار کنم. زیاد با Layout ها کار نکردم :|
    اما این جدوله رو میشه طوری تنظیم کرد که خونه هاش به نسبت اندازه کل جدول تنظیم بشن؟
    متشکرم :)



  • [quote author="nice_2000" date="1358832268"]p{direction:rtl; text-align:right;font-family:tahoma}. بله باید بیشتر کار کنم. زیاد با Layout ها کار نکردم :|
    اما این جدوله رو میشه طوری تنظیم کرد که خونه هاش به نسبت اندازه کل جدول تنظیم بشن؟
    متشکرم :)[/quote]

    p{direction:rtl; text-align:right;font-family:tahoma}. الان من چی جواب بدم آخه؟ بله میشه.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.