[Paraview] How to push a value to the ServerManager so it gets pushed down to the Server
Michael Jackson
mike.jackson at bluequartz.net
Mon Dec 14 12:08:07 EST 2009
Unfortunately the values that are stored in the QComboBox are read
from the data file. The "workaround" that i was able to implement was
to create the correct number of QTextEdit widgets and place them in
the Gui in QtDesigner. Then in my constructor for my Panel Class, I
simply call "setVisible(false)" on each of those QTextEdit widgets so
they do not show up in the GUI. I then add in the appropriate logic
using Signals/Slots to keep those invisible widgets up to date.
Seems kinda of klunky but frankly there is not enough
documentation in ParaView to stray from what is in the Wiki. There is
mention that I need to implement some sort of "adaptor" for things
like this (QRGB to RGB) is used as the example, but no actual
implementation details so I, as the programmer, am basically left
guessing what to try to implement.
Thanks for the suggestion though. Keep them coming. Better, yet,
would be places in the ParaView source to look for "examples" besides
grepping through the sources for key words.
_________________________________________________________
Mike Jackson mike.jackson at bluequartz.net
On Dec 12, 2009, at 7:49 PM, Nehme Bilal wrote:
> If the elements you want to display in you combobox are always the
> same, simply use:
>
> <IntVectorProperty
> name="ActiveDimension"
> command="SetActiveDimension"
> number_of_elements="1"
> default_values="0">
> <EnumerationDomain name="enum">
> <Entry value="1" text="X"/>
> <Entry value="2" text="Y"/>
> <Entry value="3" text="Z"/>
> </EnumerationDomain>
> </IntVectorProperty>
>
> and then rename you combobox to "ActiveDimension" in qt designer.
>
> That's should be enough to do what you are looking for.
>
> If you want to fill dynamically your combobox depending on some
> inputs, it's harder than that but can be done.
>
> for you first question, you can always use immediate_update=1
> instead of information_only to make sure that your value is pushed
> immediately to the server.
>
> Nehme
>
>
>
>
> 2009/12/11 Michael Jackson <mike.jackson at bluequartz.net>
> Well,
> That helped. At least something is getting set on the server side
> now. Copy-Paste error. Doh. Alas, the value getting set is not the
> correct value.
>
> _________________________________________________________
> Mike Jackson mike.jackson at bluequartz.net
> BlueQuartz Software www.bluequartz.net
> Principal Software Engineer Dayton, Ohio
>
> On Dec 11, 2009, at 5:15 PM, Utkarsh Ayachit wrote:
>
> Why do you have the "information_only" attribute ? That's used only
> for properties whose value are obtained from the server -side and are
> never pushed "to" the server. Simply remove that attribute, and it
> should work -- I think.
>
> Utkarsh
>
> On Fri, Dec 11, 2009 at 5:12 PM, Michael Jackson
> <mike.jackson at bluequartz.net> wrote:
> Yes, I did not know about that, but adding it still did not help.
>
> --
> Mike Jackson <www.bluequartz.net>
>
> On Dec 11, 2009, at 5:02 PM, Utkarsh Ayachit wrote:
>
> Are you forgetting a this->proxy()->UpdateVTKObjects() call after you
> have changed the value?
>
> Utkarsh
>
> On Fri, Dec 11, 2009 at 4:23 PM, Michael Jackson
> <mike.jackson at bluequartz.net> wrote:
>
> In my ServerManager XML file I have the following:
>
> <IntVectorProperty
> name="ActiveDimension"
> command="SetActiveDimension"
> number_of_elements="1"
> default_values="0"
> information_only="1">
> </IntVectorProperty>
>
> And in my Client GUI code (which extends pqLoadedFormObjectPanel) I
> have
> the
> following code:
> vtkSMProperty* smProperty =
> this->proxy()->GetProperty("ActiveDimension");
> if (NULL == smProperty)
> {
> DebugTrace(<< "SMProperty was NULL for 'ActiveDimension'" );
> }
> vtkSMIntVectorProperty* activeDimProperty =
> vtkSMIntVectorProperty::SafeDownCast(smProperty);
> activeDimProperty->SetElement(0, index);
>
> Doing a std::cout on the server side indicates that the Server side
> property
> (ActiveDimension) is NOT getting set. What exactly am I doing wrong?
>
> I would also like to have a QComboBox in the Gui that is hooked up
> to a
> server side property. What is the best way to go about that?
>
> Thanks
> _________________________________________________________
> Mike Jackson mike.jackson at bluequartz.net
More information about the ParaView
mailing list