[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