سلام اگر به هر دلیلی اون کار نمی کنه :
اول یک slot اضافه کن به این شکل
void MainWindow::resizeWindow()
{
this->setMaximumSize(450,200);
}
بعد حالا کدت رو عوض کن این شکلی بزار :
void MainWindow::checkBoxClicked(bool state)
{
if(!state)
{
widget->setVisible(state);
QTimer::singleShot(25,this,SLOT(resizeWindow()));
}
else
{
this->setMaximumSize(450,400);
widget->setVisible(state);
this->resize(450,400);
}
}
فکر کنم مشکل به خاطر این باشه که یک وقفه میفته بین Hidden کردن تا زمانی که window میفهمه که ویدجت داخلش هیدن شده !( البته من چیزی توی document کیوت ندیدم در این باره !)