I am developing both a reader (Server Side only) and a custom GUI to
go along with the reader for the client side. I have all sorts of
custom Qt Gui widgets in my Reader Gui Plugin and I was hoping to
reuse a bunch of code that was already existing.
I have created some plugins (Server side reader with Client side
custom gui) for ParaView in the past, but all of those plugins used
simple QWidgets. Nothing like what I am trying now.
My code is in a publicly accessible git repo if you want to take a
look at the code.
_________________________________________________________
Mike Jackson [email protected]
On Dec 15, 2009, at 11:59 AM, Nehme Bilal wrote:
I see. I already had the same kind of problems but am not able to
help much because there is no enough details in your message. Am not
sure if it's a reader or a filter that you are developing ? are you
reading the file on the client side ? server side ? or both ?
2 potential problems:
- if you are reading the file on both the server and client side,
your plugin will not work when the server is running on different
computer because the file will not be accessible to one of them.
- apply your plugin, save the state, delete all objects and reload
the state, probably something will go wrong.
if you give more details, I'll probably be able to help.
Nehme
2009/12/14 Michael Jackson <[email protected]>
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 [email protected]
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 <[email protected]>
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 [email protected]
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
<[email protected]> 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
<[email protected]> 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 [email protected]
_______________________________________________
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