Hi David, §1 Please don’t try to tell me to do it differently. §2 If you don’ know how to answer it, please don’t chime in, thanks.
These instructions are a bit limiting, are they not? In essence, you want a widget's geometry to be precise and up to date, before it has been shown. That is done (under more), if QWidgetPrivate::updateGeometry_helper(true) is called. There are three ways to achieve that on a hidden widget: * setVisible(true), show() => probably not an option * setMaximumSize() * setMinimumSize() => under certain circumstances. Except for the first code path shown, all others cause the helper to be called with a "false" argument, hence the result is not to your liking. I haven't debugged with negative co-ordinates. Maybe it works. However, I would be reluctant to depend on something like that. There are hacky ways, like re-implementing geometry calculation in the application, linking to WidgetsPrivate. I guess you have discarded those for good reasons. With §1 in sight: Grinding stop. Cheers Axel ________________________________ Von: Interest <interest-boun...@qt-project.org> im Auftrag von coroberti <corobe...@gmail.com> Gesendet: Montag, 27. Mai 2024 08:05 An: David M. Cotter <d...@kjams.com> Cc: Qt Project <Interest@qt-project.org> Betreff: Re: [Interest] Update widget geometry BEFORE window shown Have you tried the suggestion from Henry to move the window first to the negative coordinates? Kind regards, Robert Iakobashvili ............................ On Mon, May 27, 2024 at 9:01 AM David M. Cotter <d...@kjams.com<mailto:d...@kjams.com>> wrote: Does ANY ONE have any ideas on this?? Pretty please?? -dave On May 24, 2024, at 12:14 PM, David M. Cotter <d...@kjams.com<mailto:d...@kjams.com>> wrote: 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<mailto: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<mailto: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<mailto:Interest@qt-project.org> https://lists.qt-project.org/listinfo/interest _______________________________________________ Interest mailing list Interest@qt-project.org<mailto: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