[Paraview] Re : Re : Problem -> How to display informations in a plugin GUI ?
R M
mlokida at yahoo.fr
Mon Dec 20 11:47:25 EST 2010
Hi,
The tutorial works fine :) It was my bad...
But, I would like to know if there's an easier way for doing this display ?
________________________________
De : R M <mlokida at yahoo.fr>
À : R M <mlokida at yahoo.fr>; paraview at paraview.org
Envoyé le : Lun 20 décembre 2010, 17h 22min 57s
Objet : Re : [Paraview] Problem -> How to display informations in a plugin GUI ?
Hi,
I have not yet found the solution. I have followed this example:
http://www.paraview.org/pipermail/paraview/2008-November/010217.html but still
have problems.
In my plugin xml file I have this:
<DoubleVectorProperty
show="1"
name="Result"
label="Result
command="GetResult"
number_of_elements="1"
default_values="0"
information_only="1">
<SimpleDoubleInformationHelper />
</DoubleVectorProperty>
In my plugin source file, I have this:
double GetResult()
{
return m_result;
}
I have a class that inherit from pqAutoGeneratedObjectPanel:
#include "MyPluginPanel.h"
#include <QLineEdit>
#include "vtkSMDoubleVectorProperty.h"
#include "vtkSMProperty.h"
#include "vtkSMProxy.h"
MyPluginPanel::MyPluginPanel(pqProxy* object_proxy, QWidget* _parent)
:pqAutoGeneratedObjectPanel(object_proxy, _parent)
{
p_resultWidget = this->findChild<QLineEdit*>("Result");
if( this->findChild<QLineEdit*>("Resylt") )
{
qWarning() << "NULL Widget Pointer";
return;
}
p_resultWidget->setReadOnly(true);
}
MyPluginPanel::~MyPluginPanel()
{}
void MyPluginPanel::updateInformationAndDomains()
{
pqAutoGeneratedObjectPanel::updateInformationAndDomains();
updateDoubleValue(p_resultWidget, "Result", 0);
}
void MyPluginPanel::updateDoubleValue(QLineEdit* qLineEdit, QString property,
qint32 index)
{
vtkSMProperty* smProperty = this->proxy()->GetProperty(property.toAscii());
if (!smProperty)
{
qWarning() << "SMProperty [double] was NULL for " << property.toAscii();
return;
}
vtkSMDoubleVectorProperty* dvp =
vtkSMDoubleVectorProperty::SafeDownCast(smProperty);
double value = dvp->GetElement(index);
qLineEdit->setText(QString::number(value));
}
The problem is that the widget resultWidget is always NULL. But I can have the
good result.
So, what's wrong with my code ?
Why the widget doesn't appear in the GUI plugin in Paraview ?
Thank you for your attention and your advice.
________________________________
De : R M <mlokida at yahoo.fr>
À : paraview at paraview.org
Envoyé le : Mer 15 décembre 2010, 10h 12min 20s
Objet : [Paraview] Problem -> How to display informations in a plugin GUI ?
Hi,
I develop a plugin that and in its corresponding xml file, I have a
doubleVectorProperty in which I would like to write the result of my filter and
I don't want to make it editable.
So, I am looking for some examples of doing this beacause I really don't know
how to do this and that make a while I want to make it. I have found nothing
about this in the Paraview Guide book.
Here's what I have written in the plugin xml file:
<DoubleVectorProperty
name="GetResult"
command="GetResult"
information_only="1">
<SimpleDoubleInformationHelper/>
</DoubleVectorProperty>
<DoubleVectorProperty
name="Result"
command="SetResult
number_of_elements="1"
default_values="0.0"
information_property="GetResult">
</DoubleVectorProperty>
and the code in the source is:
double GetResult()
{
return m_result;
}
void SetResult(double value)
{
m_result = value;
}
Then, in my code, when I would like to update this lineedit in the plugin GUI I
call SetResult(myResult). But nothing happen and the lineedit in the plugin GUI
is editable (which I don't want).
Thank you for your advise.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20101220/097842ec/attachment.htm>
More information about the ParaView
mailing list