[Paraview] custom view plugin - minimal example needed

Artem Bodrin art.bodrin at gmail.com
Sat Jan 27 12:34:49 EST 2018


Hello, dear participants.

Actually, one can do what Kolja needs. If you are still interested, I can deduce the sample from my plugin.

In 2 words: 
1) inherit main view class MyView from pqView
2) create a stub class vtkPVMyView, inherited from vtkPVView, override pure virtual functions
3) add to plugin's XML:

</ServerManagerConfiguration>
    <!-- declare a view -->
    <ProxyGroup name="views">
        <ViewProxy
                name="MyView"
                class="vtkPVMyView"
                processes="client"
                base_proxygroup="internal_views"
                base_proxyname="ViewBase"
                label="My View">
        </ViewProxy>
    </ProxyGroup>
    <!-- here is your other stuff -->
</ServerManagerConfiguration>

4) create your own container widget class and return it from MyView::createWidget() method
5) use this in your plugin’s CMakeLists.txt:

   add_pqproxy(
      VIEW_IFACE VIEW_IFACE_SRCS
      TYPE MyView
      XML_GROUP views
      XML_NAME MyView
   )

That’s it. I used SpreadSheet view implementation for inspiration.


> 27 янв. 2018 г., в 15:17, Kolja Petersen <petersenkolja at gmail.com> написал(а):
> 
> Thank you Mathieu, your answer helped me decide whether to continue our developments based on Paraview.
> Kolja
> 
>  <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>	Virenfrei. www.avast.com <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> <x-msg://1/#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> 
> On Fri, Jan 26, 2018 at 9:26 AM, Mathieu Westphal <mathieu.westphal at kitware.com <mailto:mathieu.westphal at kitware.com>> wrote:
> Hi Kolja
> 
> Inheriting directly from vtkPVView is not possible as there is specific code dedicated to managing each type of base view. Even if it was possible, it would not allow you to add QtWidget anywhere in the view.
> This is not possible due to design.
> However, there are possibilities to add Qt widgets in the properties panel, in the view tool items and in any dedicated QDockWidget or QToolbar you may want to add in your plugin.
> 
> Also please keep in mind this mailing list is a volontary Q&A, We do offer consulting services [1] if you want to work with ParaView development team directly.
> 
> Best,
>  <https://www.kitware.com/what-we-offer/#consulting>
> 
> Mathieu Westphal
> 
> [1] https://www.kitware.com/what-we-offer/#consulting <https://www.kitware.com/what-we-offer/#consulting>
> 
> On Fri, Jan 26, 2018 at 7:31 AM, Kolja Petersen <petersenkolja at gmail.com <mailto:petersenkolja at gmail.com>> wrote:
> Dear Mathieu,
> I may be missing the point of your suggested code. I asked whether plugins can provide views beyond the existing RenderViews, on 15 January I sent a code snippet to the list to show my successful attempts that implement a new RenderView and ask how to replace it with a generic view containing other Qt widgets, and now you reproduced another version of the functionality from my snippet.
> 
> Why?
> 
> 
> On Tue, Jan 23, 2018 at 10:45 AM, Mathieu Westphal <mathieu.westphal at kitware.com <mailto:mathieu.westphal at kitware.com>> wrote:
> Hello
> 
> Here is a minimal example for creating a new type of view within a plugin.
> You actually cannot inherit directly from vtkPVView, you must inherit for a base view, which can be :
>  - vtkPVRenderView
>  - vtkPVContextView
>  - vtkPythonView
>  - vtkSpreadSheetView
> (https://www.paraview.org/ParaView/Doc/Nightly/www/cxx-doc/classvtkPVView.html <https://www.paraview.org/ParaView/Doc/Nightly/www/cxx-doc/classvtkPVView.html>)
> 
> This choice is also visible in the associated xml files where you precise which kind of proxy you want to create.
> 
> In the attached example, I demonstrated how to add a clone of the Render View, called Render View 2.
> 
> Hope it helps,
> 
> Best,
> 
> 
> Mathieu Westphal
> 
> On Mon, Jan 22, 2018 at 7:08 PM, Kolja Petersen <petersenkolja at gmail.com <mailto:petersenkolja at gmail.com>> wrote:
> Thank you, Mathieu,
> any update on this?
> All my research seems to point to a few hardcoded views that are accessible. I simply can't find a solution to implement a new view and open it from a plugin.
> Thanks
> Kolja
> 
> 
> On Wed, Jan 17, 2018 at 9:55 AM, Mathieu Westphal <mathieu.westphal at kitware.com <mailto:mathieu.westphal at kitware.com>> wrote:
> Hi Kolja
> 
> I have a simple view plugin project ongoing that I should be able to scale down for your needs. 
> I will try to find the time to do it before the end fo the week.
> 
> Best, 
> 
> Mathieu Westphal
> 
> On Tue, Jan 16, 2018 at 8:38 PM, Kolja Petersen <petersenkolja at gmail.com <mailto:petersenkolja at gmail.com>> wrote:
> Is it possible to write a plugin that derives from vtkPVView instead of vtkPVRenderView?
> 
> I don't know how I can further shorten my question. The answer is quite important to decide whether we can continue our ParaView developments.
> Thank you
> Kolja
> 
>  <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>	Virenfrei. www.avast.com <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> <x-msg://1/#m_-7952946054494814390_m_4251073414689478039_m_-8381060019648724713_m_-7533380727799637296_m_63782262572172547_m_2726909845290941008_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> 
> On Mon, Jan 15, 2018 at 7:32 PM, Kolja Petersen <petersenkolja at gmail.com <mailto:petersenkolja at gmail.com>> wrote:
> I have stripped down Plugin/MantaView until all compilation problems disappear. What is left, is basically a plugin for a vtkOpenGLRenderer.
> The code, consisting of only two minimal classes, is attached and can be built using:
> unzip snippet-viewplugin.zip && mkdir build && cd build && cmake && make
> (tested with ParaView 5.4.1)
> 
> This brings me back to my initial question. I'd like to show a custom view, made of a number of Qt widgets (buttons and text) to show important statistics.
> In SnippetView.xml, the view is declared as:
> <SnippetViewProxy class="vtkPVSnippetView" ... base_proxygroup="views" base_proxyname="RenderView" ...
> 
> How can I replace 'base_proxyname="RenderView"' by some generic view, to be filled with widgets? "View" or "ViewBase" are not recognized as base proxies.
> Thank you
> Kolja
> 
> 
> On Sun, Jan 14, 2018 at 5:05 PM, Kolja Petersen <petersenkolja at gmail.com <mailto:petersenkolja at gmail.com>> wrote:
> Dear plugin developers,
> I need to implement a custom view to present datasets in a detailed editable format.
> 
> This link says that the plugin tutorial is obsolete for the view part:
> https://www.paraview.org/Wiki/ParaView/Plugin_HowTo#Adding_a_custom_view_.2A_obsolete_.2A <https://www.paraview.org/Wiki/ParaView/Plugin_HowTo#Adding_a_custom_view_.2A_obsolete_.2A>
> 
> The Examples/Plugins/GUIView suggested in the link doesn't exist. The Plugins/MantaView is rather complex and doesn't compile due to other bugs as reported elsewhere, so that I can't get a clue how the MantaView plugin is supposed to work.
> 
> Could some kind developer upload a minimal working view plugin example, which needs to display only a simple QButton or any other widget? This will help to allow users build their custom views for ParaView 5.x.y.
> Thank you
> Kolja
> 
> 
> 
> _______________________________________________
> Powered by www.kitware.com <http://www.kitware.com/>
> 
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html <http://www.kitware.com/opensource/opensource.html>
> 
> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView <http://paraview.org/Wiki/ParaView>
> 
> Search the list archives at: http://markmail.org/search/?q=ParaView <http://markmail.org/search/?q=ParaView>
> 
> Follow this link to subscribe/unsubscribe:
> https://paraview.org/mailman/listinfo/paraview <https://paraview.org/mailman/listinfo/paraview>
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> 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
> 
> Search the list archives at: http://markmail.org/search/?q=ParaView
> 
> Follow this link to subscribe/unsubscribe:
> https://paraview.org/mailman/listinfo/paraview

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://paraview.org/pipermail/paraview/attachments/20180127/c50cb180/attachment.html>


More information about the ParaView mailing list