[PyQt] Construct QVariant from object of user type
Arve Knudsen
arve.knudsen at gmail.com
Sun Apr 27 15:31:47 BST 2008
On Sun, Apr 27, 2008 at 4:25 PM, Phil Thompson
<phil at riverbankcomputing.com> wrote:
>
> 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.
Sounds like it should be enough. Thanks!
Arve
More information about the PyQt
mailing list