On 4/17/08, Arve Knudsen <[EMAIL PROTECTED]> wrote: > On 4/17/08, Matt Newell <[EMAIL PROTECTED]> wrote: > > On Wednesday 16 April 2008 14:18:26 Arve Knudsen wrote: > > > On Wed, Apr 16, 2008 at 11:33 AM, Phil Thompson > > > > > > <[EMAIL PROTECTED]> wrote: > > > > On Wednesday 16 April 2008, Arve Knudsen wrote: > > > > > Phil, any comment on this? > > > > > > > > > > Thanks, > > > > > Arve > > > > > > > > Unless you can use the ctor that takes a void* I don't see how you > can > > > > expect to extend the functionality of a C++ class from Python. > > > > > > How am I supposed to use the QVariant(int typeOrUserType, const void* > > > copy) constructor from Python? The documentation refers to > > > sip.voidptr, which I know nothing about, and to use qVariantFromValue > > > which isn't defined. > > > > > > I need to store objects of a custom class in QVariants, with a certain > > > type code (QVariant::Type). The reason I need to do this is that > > > QItemEditorFactory is parameterized on QVariant::Type. > > > > > > Arve > > > > > > > > If you look at qmetatype.h, you'll see that it should be possible to > create a > > mechanism to register custom python classes as QVariant types. You just > need > > to implement Constructor/Destructor methods that call Py_INCREF/Py_DECREF. > > Then for each custom python type call QMetaType::registerType(...). This > > would need to be implemented in c++ with a python interface. > > > > You could then write a custom QVariant constructor that detects if the > python > > object's type is registered, and automatically call the QVariant(int > > type,void*) ctor, or throws an exception for non-registered types. > > > So I would *have to* do this in C++? Ugh.
Phil: Can you confirm that I have to do this via C++? Thanks, Arve _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
