[Paraview] linking vtkSMStringVectorProperty to a SLOT

Nehme Bilal nehmebilal at gmail.com
Fri Apr 10 11:04:49 EDT 2009


Thanks Utkarsh. This will solve the problem.
I have another question:
to get the array from the client, I implemented a method in my server
side that look like this:
void SetArrays(const char *array, int state).
This works perfectly but what if my StringVectorProperty was an
information_only property that I want to set in the server side and
display in the client.
How can I set the element of an information_only StringVectorProperty
that looks like this in the server side: ?
      <StringVectorProperty
         name="Arrays"
         command="GetArrays"
         repeat_command="1"
         number_of_elements_per_command="2"
         element_types="2 0"
         information_only=1>
      </StringVectorProperty>

Thank you,
Nehme



2009/4/9 Utkarsh Ayachit <utkarsh.ayachit at kitware.com>:
> There;s no direct way around this. You can handle it in use Qt code by
> using a singleshot timer and calling some other slot only on idle.
> Alternatively try to look at the code that's modifying the "Array"
> property. Instead of using the SetElement() API, change it to using
> the SetElements() API which modifies all elements and then fires the
> modified event.
>
> Utkarsh
>
> On Thu, Apr 9, 2009 at 8:21 AM, Nehme Bilal <nehmebilal at gmail.com> wrote:
>> Hi again,
>>
>> I found a way that seems to work, but I still have a problem.
>> The StringVectorProperty I'm using look like this:
>>
>>      <StringVectorProperty
>>         name="Arrays"
>>         command="SetArrays"
>>         repeat_command="1"
>>         number_of_elements_per_command="2"
>>         element_types="2 0">
>>      </StringVectorProperty>
>>
>> to connect this property to a Qt SLOT, I used:
>>
>> vtkSmartPointer<vtkEventQtSlotConnect> VTKConnect =
>>                            vtkSmartPointer<vtkEventQtSlotConnect>::New();
>> VTKConnect->Connect(arrays, vtkCommand::ModifiedEvent,
>>                this, SLOT(onArraysModified()));
>>
>> because repeat_command=1 the SLOT will be called every time an element
>> is modified in the StringVectorProperty
>> and that will cause a slow excecution if the number of elements in the
>> StringVectorProperty is to big.
>> Is there a way around this ?
>>
>> Thanks
>>
>> 2009/4/9 Nehme Bilal <nehmebilal at gmail.com>:
>>> Hi All,
>>>
>>> I have a StringVectorProperty that I'm trying to link to a Qt SLOT in
>>> the client side of my plugin. I want the SLOT to be called when the
>>> StringVectorProperty is modified.
>>> Is that possible ?
>>>
>>> Thanks you
>>> Nehme
>>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.paraview.org/mailman/listinfo/paraview
>>
>


More information about the ParaView mailing list