Am 31.03.2014 um 12:45 schrieb "william.croc...@analog.com" 
<william.croc...@analog.com>:

> On 03/31/2014 03:24 AM, Till Oliver Knoll wrote:
>> Am 30.03.2014 um 22:31 schrieb Brad Pepers<bpep...@me.com>:
>> 
>>> ...
>>> 
>>> Any hints on where to look for this or maybe some other way to code this to 
>>> avoid the problem?
>> 
>> I don't know where those "extra paint events" come from (or why),
>> but the most obvious thing for me would be to set a (conditional?) breakpoint
>> in your paint event handler and see from where those calls are triggered, and
> under what condition.

Under the condition that it only breaks when one of the "extra paint events" is 
handled. I placed a question mark there because I don't know how you would 
differentiate between a "legimitate" and an "extra" paint event, maybe with a 
"debug counter variable", or only break when you get a full graphicview 
update...

> 
> I know from experience that that does not help.
> I'm pretty sure the back trace from paintEvent()
> will just lead to the main event loop, not the
> cause.

Yes, you're absolutely right: we already know where the paint event comes from, 
and why ("because someone called update()").


> 
> What we all really want to know is:
> 
>     Which of the previous calls to update() between
>     point A and now actually scheduled the/a paint event.

In order to figure that (in a "brute-force kind of way") out you'd have to set 
the breakpoint in the mainloop... doh!

Maybe there's another way: QWidget::update() is a slot, right? If you're 
"lucky" those extra updates are triggered by someone calling that slot (via a 
signal). Maybe a tool like "GammaRay" by KDAB would help in such a case? It 
helps you tracking Qt signals (maybe even QEvents?). Haven't used it so far, 
but maybe it's worth a try?

Cheers,
  Oliver

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to