[PyQt] Construct QVariant from object of user type
Phil Thompson
phil at riverbankcomputing.com
Sun Apr 27 15:25:46 BST 2008
On Saturday 26 April 2008, Arve Knudsen wrote:
> On Sat, Apr 26, 2008 at 10:43 AM, Phil Thompson
>
> <phil at riverbankcomputing.com> wrote:
> > On Friday 25 April 2008, Arve Knudsen wrote:
> > > On Thu, Apr 24, 2008 at 5:55 PM, Phil Thompson
> > >
> > > <phil at riverbankcomputing.com> wrote:
> > > > Tonight's PyQt snapshot will have some support for storing a Python
> > > > object in a QVariant so the following code works...
> > > >
> > > > from PyQt4.QtCore import QVariant
> > > >
> > > > class Klass(object): pass
> > > >
> > > > k = Klass()
> > > > v = QVariant(k)
> > > > v1 = QVariant(v)
> > > > assert v1.toPyObject() is k
> > > >
> > > > Let me know if more is needed.
> > >
> > > I'm missing a way to specify the QVariant::Type for such an object.
> >
> > Why would you want to give each Python type a different metatype?
>
> Because of my original case, to be able to work with
> QItemEditorFactory, which parameterizes on QVariant::Type (see
> QItemEditorFactory::registerEditor).
Tonight's snapshot...
The QVariant() ctor will now register new Python types automatically. I've
also wrapped QMetaType.type() and overloaded it so that you can pass a Python
type. I think this is enough for what you need.
Phil
More information about the PyQt
mailing list