[PyKDE] Re: [PyQt3] QStyle.drawComplexControl() with invalid type
in arg 7
Hans-Peter Jansen
hpj at urpla.net
Mon Oct 23 22:03:46 BST 2006
Why the f*ck generated KMail a html mail? :-(
Sorry guys, here's a sane version:
Am Montag, 23. Oktober 2006 18:22 schrieb Hans-Peter Jansen:
> Am Sonntag, 22. Oktober 2006 23:32 schrieb Hans-Peter Jansen:
>
> Update: to avoid the SC_All value for the sub parameter, I added:
>
> sub = QStyle.SC_SpinWidgetUp | QStyle.SC_SpinWidgetDown |
> QStyle.SC_SpinWidgetFrame | \ QStyle.SC_SpinWidgetEditField |
> QStyle.SC_SpinWidgetButtonField
>
> and use this value, which in theory should do the right thing.
>
> Unfortunately, it leads to the earlier mentioned core dump with an
> interesting back trace:
>
> The question is, why the heck does paintEvent call into
> QSpinWidget::buttonSymbol at all? At least, I wouldn't expect this, but
> may be it's due to some self.style().drawComplexControl() side effect?
>
Found it. Inside drawComplexControl(), whereever it is implemented, it
accesses the QSpinWidget to check, which button symbols to paint, and
that's where it crashes. This is the first time, where I got stuck in such
a way, it looks like it cannot be solved on the python side of PyQt (well,
at least not without giving up consistent visual appearance by implementing
the QSpinWidget button paint with primitive elements, or suffering big
pains by subclassing QSpinBox and trying to override most functionality..)
The whole issue is triggered by the unfortunate relationship of QSpinBox
with the int based QRangeControl, which is simply too limited for medium
sized decimal values (at least on 32 bit cpus), since they must be mapped
to the int range.
If anybody has more ideas, what can be done, I'm open for suggestions..
Pete
More information about the PyQt
mailing list