[PyQt] Re: QStyle manipulations
Hans-Peter Jansen
hpj at urpla.net
Mon Jul 27 21:56:57 BST 2009
Am Montag, 27. Juli 2009 schrieb Phil Thompson:
> On Mon, 27 Jul 2009 21:03:59 +0200, "Hans-Peter Jansen" <hpj at urpla.net>
> >>
> >> const_cast<QStyle
> >> *>(this)->qt_metacall(QMetaObject::InvokeMetaMethod,
> >> d->layoutSpacingIndex, param); return result;
> >> }
> >>
> >>
> >> Do you see any chance of getting this to behave?
> >
> > Hmm, from what I can see (though I _am_ blind, when it comes to the
> > guts from sip and PyQt), most of needed mechanics is in place. The
> > question
>
> is,
>
> > what have to be done, that:
> > * the metaObject is able to locate our method with
> > metaObject()->indexOfMethod(), and
> > * qt_metacall is able to invoke our method
> >
> > The former may already do what it should (otherwise parts of the
> > QMetaObject
> > stuff won't do at all, it's even wrapped in qobjectdefs.sip).
> >
> > The latter seems to be the problem, since it may need some kind of
>
>
> > Parts of qpy/QtCore/qpycore_pyqtproxy.cpp look like they handle similar
> > cases. Is it possible to register our method at run-time and be done
> > with
> >
> > it, Phil?
>
> You can certainly work around the problem with C++ code - but I'm not
> sure if SIP will allow you to place the C++ code in the right place.
Hmm, as it stands, I'm lost in a maze of Qt meta object system wrapped in
the guts of sip and PyQt. It looks like it takes some kind of manual
registration in the Q*Style constructor on C++ level, which is normally
covered in the Q_OBJECT macro, but I've no idea, how it all fits together
conceptually, thus unable to come up with some kind of solution to the
problem. Will try to solve the problem differently, uglier, much uglier.
Rarely I regret to be a Python guy, like today :-(.
Pete
More information about the PyQt
mailing list