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

Reply via email to