可以参考文章:https://www.cnblogs.com/roadbike/p/5791484.html
Qt在控件未显示时如何获取正确的控件尺寸
//widget为需要强制刷新布局的控件,如对话框等
widget->setAttribute(Qt::WA_DontShowOnScreen);
widget->show();
widget->hide();
widget->setAttribute(Qt::WA_DontShowOnScreen, false);
我的认识:
这是因为这些设置尺寸的函数,必须要在QWidget::updateGeometry()和QWidget::update()或者控件处于可见状态下?
没看qt源码,所以不是很确定,但是先让父widget->show()一下再设置这个子控件的尺寸就可以了。