On 12/17/2015 02:40 PM, william.croc...@analog.com wrote:
On 12/17/2015 01:53 PM, Jason H wrote:

If I call:

QWidget::update() and
QWidget::updateGeometry()

Can I assume the layout request would be processed first and
then any repaints would take place.

In general can I assume that all layout requests would be serviced
upon return to the event loop before any repaints.

A troll might know otherwise, but that is the model I use when I do QWidget
subclasses (I've done several), and it's always worked like that for me. It'd
be a waste to to anything otherwise because you're doing a potentially
expansive paint operation on junk geometry.

My understanding exactly.

At one point I call QWidget::upateGeometry().
A stack trace shows the call as part of a mouseReleaseEvent and so
it appears to be made before returning to the event loop.

Yet, the result is a delivery of a layout request event **after the paint**.

If I comment it out, all is well.

Do we agree that that does not make sense
and I must be doing something wrong.


Well, the code deep inside of QWifget::updateGeometry boils down to this.
My call results in the postEvent. I assume that would be serviced
upon return to the event loop, and before the subsequent paint.

             if (parent->d_func()->layout)
                 parent->d_func()->layout->invalidate();
             else if (parent->isVisible())
QApplication::postEvent(parent, new QEvent(QEvent::LayoutRequest));

Or does that have nothing to do with QLayout and the QEvent::LayoutRequest
is sent after the paint. I am catching that in my widget event handler and
updating my widget geometry and calling update(). Is that where the second,
unexpected repaint is coming from.

Bill

The only thing I can think of is if someone calls their own (or a child
widget's) repaint method directly, which I read somewhere is a no-no.(For
obvious reasons).

I do not do that.





_______________________________________________
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