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

Reply via email to