Hello John, Maybe the QWidget::adjustSize() function is what you are looking for. I think after calling adjustSize() the geometry() function should give a up to date result.
Hth, Jan On 21-9-2015 19:33, John Weeks wrote: > If this is a repeat, my apologies. I can't tell if I saw this arrive on the > list! > > > > In general a QWidget that hasn't been made visible yet gives bogus results > for QWidget::geometry(). Qt only guarantees that a call to setGeometry() will > result in a Resize event when the window is made visible. But we often need > to ask a window or child widget how big it is before it is made visible in > order to do various kinds of calculations. These calculations are sometimes > used for things that preclude waiting for the window to become visible. > > Is there a way to force the Resize events (and all the layout calculation > machinery that goes with it) before it is visible? Using Qt 5.5, I see that > if you call QWidget::grab(), it will call a static function > sendResizeEvents() that does exactly what I want: > > QPixmap QWidget::grab(const QRect &rectangle) > { > Q_D(QWidget); > if (testAttribute(Qt::WA_PendingResizeEvent) || > !testAttribute(Qt::WA_WState_Created)) > sendResizeEvents(this); > > Is there some other way to get this to happen? I suppose I could just call > grab() and throw away the QPixmap, but that seems like an awful kludge... > > -John Weeks > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest