[Ctk-developers] ctkMatrixWidget: setValue not invokable from Python

Daniel Haehn haehn at bwh.harvard.edu
Fri Aug 19 11:55:34 EDT 2011


Hi again,

so it seems that PythonQt has problems to wrap a QVector<double>. The
setValues method is not accesible from python and the values() method
returns:

  QVector<double> (C++ Object 0x14c479690)

rather than a python list. Maybe PythonQt only supports QVector<double*> ?

Maybe it makes more sense to return a QVariantList which maps to
python tuples in PythonQt?

What do you guys think?

Thanks,
Daniel

On Wed, Aug 17, 2011 at 7:56 PM, Daniel Haehn <haehn at bwh.harvard.edu> wrote:
> Great, thank you!
>
> Daniel
>
> On Wed, Aug 17, 2011 at 7:48 PM, Julien Finet <julien.finet at kitware.com> wrote:
>> Added in CTK:
>> https://github.com/commontk/CTK/commit/5ebd60003b230f961bfb5d2c89c17f0ddcb4a151
>> Added in Slicer: r17743
>> http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=17743
>> Thanks,
>> Julien.
>>
>> On Wed, Aug 17, 2011 at 4:55 PM, Daniel Haehn <haehn at bwh.harvard.edu> wrote:
>>>
>>> Thanks for the feedback,
>>>
>>> I just commited
>>>
>>> https://github.com/haehn/CTK/commit/583a229fce5d99f06b78bab1c3a38cfe4255a328
>>>
>>> Would be great if we could encounter these changes to upstream and
>>> then to Slicer CTK - the EMSegmenter needs it :)
>>>
>>> Thx,
>>> Daniel
>>>
>>> On Wed, Aug 17, 2011 at 4:48 PM, Julien Finet <julien.finet at kitware.com>
>>> wrote:
>>> > Looks good, except that when populating the values vector
>>> > (ctkMatrixWidget::values()), I would call ctkMatrixWidget::value(i,j)
>>> > instead of manually querying the data in order to factorize code.
>>> > Thanks,
>>> > Julien.
>>> > p.s.I agree that setValues() would also beneficiate from some
>>> > refactorization as well, but it's another story...
>>> >
>>> > On Wed, Aug 17, 2011 at 4:15 PM, Daniel Haehn <haehn at bwh.harvard.edu>
>>> > wrote:
>>> >>
>>> >> Hi guys,
>>> >>
>>> >> could you please review
>>> >>
>>> >>
>>> >>
>>> >> https://github.com/haehn/CTK/tree/add-SetValuesQPropertyMatrixWidget-feature
>>> >>
>>> >> Thx,
>>> >> Daniel
>>> >>
>>> >> On Tue, Aug 16, 2011 at 3:57 PM, Jean-Christophe Fillion-Robin
>>> >> <jchris.fillionr at kitware.com> wrote:
>>> >> > +1 for setValues
>>> >> > Jc
>>> >> >
>>> >> > On Tue, Aug 16, 2011 at 3:11 PM, Julien Finet
>>> >> > <julien.finet at kitware.com>
>>> >> > wrote:
>>> >> >>
>>> >> >> Because a "Q_PROPERTY adds features through the meta-object system".
>>> >> >> Practically in this case, it allows the property to be wrapped with
>>> >> >> python, and initial values can also be set directly via the
>>> >> >> Designer.
>>> >> >> As a more philosophical point, the matrix "values" are a "property"
>>> >> >> of
>>> >> >> the
>>> >> >> matrix.
>>> >> >> Julien.
>>> >> >> On Tue, Aug 16, 2011 at 3:04 PM, Daniel Haehn
>>> >> >> <haehn at bwh.harvard.edu>
>>> >> >> wrote:
>>> >> >>>
>>> >> >>> Hi Julien,
>>> >> >>>
>>> >> >>> why do you think a Q_PROPERTY is better? Anyway, I will give it a
>>> >> >>> shot
>>> >> >>> and let you know.
>>> >> >>>
>>> >> >>> Cheers,
>>> >> >>> Daniel
>>> >> >>>
>>> >> >>> On Tue, Aug 16, 2011 at 1:48 PM, Julien Finet
>>> >> >>> <julien.finet at kitware.com>
>>> >> >>> wrote:
>>> >> >>> > Either that or we make a Q_PROPERTY named "values":
>>> >> >>> > Q_PROPERTY( QVector<double> values READ values WRITE setValues)
>>> >> >>> > There is already: ctkMatrixWidget::setVector(QVector<double>),
>>> >> >>> > maybe
>>> >> >>> > it
>>> >> >>> > could be renamed into setValues and values() should then also be
>>> >> >>> > written.
>>> >> >>> > Julien.
>>> >> >>> >
>>> >> >>> > On Tue, Aug 16, 2011 at 12:37 PM, Daniel Haehn
>>> >> >>> > <haehn at bwh.harvard.edu>
>>> >> >>> > wrote:
>>> >> >>> >>
>>> >> >>> >> Hi guys,
>>> >> >>> >>
>>> >> >>> >> it seems that it is not possible to set a value of a
>>> >> >>> >> ctkMatrixWidget
>>> >> >>> >> from Python?
>>> >> >>> >>
>>> >> >>> >> Shall we just enable Q_INVOKABLE on the
>>> >> >>> >> ctkMatrixWidget::setValue
>>> >> >>> >> method?
>>> >> >>> >>
>>> >> >>> >> Thanks,
>>> >> >>> >> Daniel
>>> >> >>> >> _______________________________________________
>>> >> >>> >> Ctk-developers mailing list
>>> >> >>> >> Ctk-developers at commontk.org
>>> >> >>> >>
>>> >> >>> >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers
>>> >> >>> >
>>> >> >>> >
>>> >> >>
>>> >> >>
>>> >> >> _______________________________________________
>>> >> >> Ctk-developers mailing list
>>> >> >> Ctk-developers at commontk.org
>>> >> >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers
>>> >> >>
>>> >> >
>>> >> >
>>> >> >
>>> >> > --
>>> >> > +1 919 869 8849
>>> >> >
>>> >> >
>>> >
>>> >
>>
>>
>



More information about the Ctk-developers mailing list