splttr->setStretchFactor(0, 0);splttr->setStretchFactor(1, 1);
QSize MyDialog::sizeHint(){ if (frmRight->isHidden()) return QSize(LWidth,this->height()); else return QSize(LWidth+RWidth+splttr->handleWidth(),this->height());}
void MyDialog::sltBtnLeft(){... if (...) { .... this->setMinimumWidth(100); <- ну по образу и эту можно подправить } else this->setMinimumWidth(200); <- вот с этой штукой...
MyDialog::MyDialog(QWidget* parent, Qt::WindowFlags flags) : QDialog(parent, flags){... loMain->setSizeConstraint(QLayout::SetMinimumSize);...}
void MyDialog::sltBtnLeft(){ LWidth=frmLeft->width(); if (frmRight->isVisible()) RWidth=frmRight->width(); frmRight->setVisible(frmRight->isHidden()); this->resize(this->sizeHint()); splttr->setSizes(QList<int>()<<LWidth<<RWidth);}