I’ve tried everything I can think of. The ONLY one that works the way I NEED is the first one, but that one flashes the window on the screen
#if 1 qWidgetP->show(); qWidgetP->hide(); QtLetTimersFire(0); #endif #if 0 QLayout* layoutP(qWidgetP->layout()); layoutP->update(); layoutP->activate(); QtLetTimersFire(0); #endif #if 0 for (auto* childP: qWidgetP->findChildren<QWidget*>()) { childP->updateGeometry(); } qWidgetP->updateGeometry(); QtLetTimersFire(0); #endif #if 0 qWidgetP->setAttribute(Qt::WA_DontShowOnScreen, true); qWidgetP->show(); // qWidgetP->layout()->invalidate(); // qWidgetP->layout()->update(); // qWidgetP->layout()->activate(); qWidgetP->hide(); qWidgetP->setAttribute(Qt::WA_DontShowOnScreen, false); QtLetTimersFire(0); #endif #if 0 qWidgetP->setAttribute(Qt::WA_DontShowOnScreen, true); qWidgetP->show(); qWidgetP->layout()->invalidate(); qWidgetP->layout()->update(); qWidgetP->layout()->activate(); for (auto* childP: qWidgetP->findChildren<QWidget*>()) { childP->updateGeometry(); } qWidgetP->updateGeometry(); qWidgetP->hide(); qWidgetP->setAttribute(Qt::WA_DontShowOnScreen, false); QtLetTimersFire(0); #endif > On May 24, 2024, at 12:47 AM, coroberti <corobe...@gmail.com> wrote: > > David, > Try > yourWidget->layout()->update(); > yourWidget->layout()->activate(); > > If not, > let the event loop to run, ie. arranging a short timer. > > Kind regards, > Robert Iakobashvili > ............................ > > On Fri, May 24, 2024 at 1:53 AM David M. Cotter <d...@kjams.com> wrote: >> >> I need to do something like this: >> >> windowP->layout()->updateGeometry(); // causes all widget geometry to update >> DoSomethingImportant(windowP->GetWidget(“someWidget”).geometry()); // do >> something with the geometry of a widget (which must be up to date) >> windowP->setGeometry(windowP->GetInitialGeometry()); // pos/size now based >> on the fact that we KNOW the geometry of one of the widgets BEFORE the >> window is shown >> windowP->show(); // only NOW show the window, NOT before now >> >> How do I do something like the first line? Cause all widget geometry >> (Recursively), to know / figure out its size AND position? And this BEFORE >> the window or any widget is “shown” via the windowP->show() command? >> >> Please don’t try to tell me to do it differently. If you don’ know how to >> answer it, please don’t chime in, thanks. >> >> -Dave >> _______________________________________________ >> Interest mailing list >> Interest@qt-project.org >> https://lists.qt-project.org/listinfo/interest
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest