[vtkusers] Inresolved external for QVTKWidget in VTK-8.0.1.

Zoltan Kovacs Zoltan.Kovacs at esi-group.com
Tue Oct 10 10:49:02 EDT 2017


Dear Dan,

Thank you for your prompt answer! The problem is that our application 
development is bound to QtCreator and it seems that the Qt5 support of 
VTK provides a plugin file for QVTKWidget and not for QVTKOpenGLWidget. 
Inspecting the example RenderWindowNoUiFile.cxx, I cannot see how 
QVTKOpenGLWidget can be placed in an UI form file even if its class can 
be defined in the C source. In the widget list of QtCreator I have only 
QVTKWidget because of the plugin and no QVTKOpenGLWidget is available in 
it. Thanks four your help.

Kind regards,
Zoltan

Am 10.10.2017 um 16:33 schrieb Dan Lipsa:
> Zoltan,
> This is unrelated to the error you are seeing however:
> 
> For Qt5 you'll need to use QVTKOpenGLWidget rather than QVTKWidget.  See
> https://lorensen.github.io/VTKExamples/site/Cxx/
> All examples are converted to Qt5. Also, VTK master has a number of 
> examples that have been converted to Qt5: Examples/GUI/Qt
> 
> Hope this helps,
> Dan
> 
> 
> On Tue, Oct 10, 2017 at 10:10 AM, Zoltan Kovacs 
> <Zoltan.Kovacs at esi-group.com <mailto:Zoltan.Kovacs at esi-group.com>> wrote:
> 
>     Dear all,
> 
>     In CMake I generated a solution project of VTK-8.0.1 with Qt5
>     support for MSVS2013. After having run the ALL_BUILD and INSTALL
>     projects with the install prefix C:\VTK\8.0.1 in VM2013 I could
>     installed the Win32 bit binaries of VTK 8.0.1 in that folder. The
>     header files and the libraries are located in
>     C:\VTK\8.0.1\include\vtk-8.0   and
>     C:\VTK\8.0.1\lib.
> 
>     I copied the file QVTKWidgetPlugin.dll from the VTK binary folders
>     to the plugin folder of QTCreator, which uses QT 5.8 msvs2013 32 bit
>     version.
> 
>     Then I set the include and library paths and added all the VTK
>     libary files from C:\VTK\8.0.1\lib for the linker setting in the
>     project file
>     of a QT application in QtCreator:
> 
>     INCLUDEPATH += C:\VTK\8.0.1\include\vtk-8.0
>     LIBS += -LC:\VTK\8.0.1\lib
> 
>     LIBS += -lvtkRenderingLabel-8.0 \
>     -lvtkRenderingLOD-8.0 \
>     -lvtkRenderingOpenGL2-8.0 \
>     -lvtkRenderingQt-8.0 \
>     -lvtkRenderingVolume-8.0 \
>     -lvtkRenderingVolumeOpenGL2-8.0 \
>     -lvtksqlite-8.0 \
>     -lvtksys-8.0 \
>     -lvtkTestingGenericBridge-8.0 \
>     -lvtkTestingIOSQL-8.0 \
>     -lvtkTestingRendering-8.0 \
>     -lvtktiff-8.0 \
>     -lvtkverdict-8.0 \
>     -lvtkViewsContext2D-8.0 \
>     -lvtkViewsCore-8.0 \
>     -lvtkViewsInfovis-8.0 \
>     -lvtkViewsQt-8.0 \
>     -lvtkzlib-8.0 \
>     -lvtkalglib-8.0 \
>     -lvtkChartsCore-8.0 \
>     -lvtkCommonColor-8.0 \
>     -lvtkCommonComputationalGeometry-8.0 \
>     -lvtkCommonCore-8.0 \
>     -lvtkCommonDataModel-8.0 \
>     -lvtkCommonExecutionModel-8.0 \
>     -lvtkCommonMath-8.0 \
>     -lvtkCommonMisc-8.0 \
>     -lvtkCommonSystem-8.0 \
>     -lvtkCommonTransforms-8.0 \
>     -lvtkDICOMParser-8.0 \
>     -lvtkDomainsChemistry-8.0 \
>     -lvtkDomainsChemistryOpenGL2-8.0 \
>     -lvtkexoIIc-8.0 \
>     -lvtkexpat-8.0 \
>     -lvtkFiltersAMR-8.0 \
>     -lvtkFiltersCore-8.0 \
>     -lvtkFiltersExtraction-8.0 \
>     -lvtkFiltersFlowPaths-8.0 \
>     -lvtkFiltersGeneral-8.0 \
>     -lvtkFiltersGeneric-8.0 \
>     -lvtkFiltersGeometry-8.0 \
>     -lvtkFiltersHybrid-8.0 \
>     -lvtkFiltersHyperTree-8.0 \
>     -lvtkFiltersImaging-8.0 \
>     -lvtkFiltersModeling-8.0 \
>     -lvtkFiltersParallel-8.0 \
>     -lvtkFiltersParallelImaging-8.0 \
>     -lvtkFiltersPoints-8.0 \
>     -lvtkFiltersProgrammable-8.0 \
>     -lvtkFiltersSelection-8.0 \
>     -lvtkFiltersSMP-8.0 \
>     -lvtkFiltersSources-8.0 \
>     -lvtkFiltersStatistics-8.0 \
>     -lvtkFiltersTexture-8.0 \
>     -lvtkFiltersTopology-8.0 \
>     -lvtkFiltersVerdict-8.0 \
>     -lvtkfreetype-8.0 \
>     -lvtkGeovisCore-8.0 \
>     -lvtkgl2ps-8.0 \
>     -lvtkglew-8.0 \
>     -lvtkGUISupportQt-8.0 \
>     -lvtkGUISupportQtSQL-8.0 \
>     -lvtkhdf5_hl-8.0 \
>     -lvtkhdf5-8.0 \
>     -lvtkImagingColor-8.0 \
>     -lvtkImagingCore-8.0 \
>     -lvtkImagingFourier-8.0 \
>     -lvtkImagingGeneral-8.0 \
>     -lvtkImagingHybrid-8.0 \
>     -lvtkImagingMath-8.0 \
>     -lvtkImagingMorphological-8.0 \
>     -lvtkImagingSources-8.0 \
>     -lvtkImagingStatistics-8.0 \
>     -lvtkImagingStencil-8.0 \
>     -lvtkInfovisCore-8.0 \
>     -lvtkInfovisLayout-8.0 \
>     -lvtkInteractionImage-8.0 \
>     -lvtkInteractionStyle-8.0 \
>     -lvtkInteractionWidgets-8.0 \
>     -lvtkIOAMR-8.0 \
>     -lvtkIOCore-8.0 \
>     -lvtkIOEnSight-8.0 \
>     -lvtkIOExodus-8.0 \
>     -lvtkIOExport-8.0 \
>     -lvtkIOExportOpenGL2-8.0 \
>     -lvtkIOGeometry-8.0 \
>     -lvtkIOImage-8.0 \
>     -lvtkIOImport-8.0 \
>     -lvtkIOInfovis-8.0 \
>     -lvtkIOLegacy-8.0 \
>     -lvtkIOLSDyna-8.0 \
>     -lvtkIOMINC-8.0 \
>     -lvtkIOMovie-8.0 \
>     -lvtkIONetCDF-8.0 \
>     -lvtkIOParallel-8.0 \
>     -lvtkIOParallelXML-8.0 \
>     -lvtkIOPLY-8.0 \
>     -lvtkIOSQL-8.0 \
>     -lvtkIOTecplotTable-8.0 \
>     -lvtkIOVideo-8.0 \
>     -lvtkIOXML-8.0 \
>     -lvtkIOXMLParser-8.0 \
>     -lvtkjpeg-8.0 \
>     -lvtkjsoncpp-8.0 \
>     -lvtklibharu-8.0 \
>     -lvtklibxml2-8.0 \
>     -lvtkLocalExample-8.0 \
>     -lvtklz4-8.0 \
>     -lvtkmetaio-8.0 \
>     -lvtknetcdf_c++ \
>     -lvtkNetCDF-8.0 \
>     -lvtkoggtheora-8.0 \
>     -lvtkParallelCore-8.0 \
>     -lvtkpng-8.0 \
>     -lvtkproj4-8.0 \
>     -lvtkRenderingAnnotation-8.0 \
>     -lvtkRenderingContext2D-8.0 \
>     -lvtkRenderingContextOpenGL2-8.0 \
>     -lvtkRenderingCore-8.0 \
>     -lvtkRenderingFreeType-8.0 \
>     -lvtkRenderingGL2PSOpenGL2-8.0 \
>     -lvtkRenderingImage-8.0 \
> 
> 
>     However, if I add a QVTKWidget on the UI file of the application,
>     include the file QVTKWidget.h in the header file of the application
>     and I try to link it in QtCreator with the 32-bit VTK and Qt
>     libraries, MSVS2013 (in the toolchain of QtCreator) sends error
>     messages for unresolved external symbols for all the
>     functions/classes belonging to the QVTKWidget, such as
> 
>     distortionpage.obj:-1: Fehler: LNK2019: unresolved external symbol
>     "__declspec(dllimport) public: __thiscall
>     QVTKWidget::QVTKWidget(class QWidget *,class QFlags<enum
>     Qt::WindowType>)"
>     (__imp_??0QVTKWidget@@QAE at PAVQWidget@@V?$QFlags at W4WindowType@Qt@@@@@Z)
>     referenced in function "public: void __thiscall
>     Ui_DistortionPage::setupUi(class QWidget *)"
>     (?setupUi at Ui_DistortionPage@@QAEXPAVQWidget@@@Z)
> 
> 
>     It seems that the linker could not find the libary for the
>     QVTKWidget plugin, which is loaded since I could chose QtWidget from
>     the widget list in the UI form editor in QtCreator. I do not see any
>     ABI issue here since I use the 32 bit mscv2103 version of Qt and I
>     also compiled and linked the 32 bit version of VTK libaries and
>     plugin files with MSVS2013. I am wondering if anybody could make
>     VTK-8.1 working with Qt. Thanks a lot.
> 
>     Kind regars,
>     Zoltan
> 
>     Regards,
>     Zoltan
> 
>     Am 09.10.2017 um 07:34 schrieb support at qt.io <mailto:support at qt.io>:
> 
>         Hi Zoltan,
> 
>         I don't know how the widget should be installed or set up in a
>         project, but you could just search for the header file and point
>         INCLUDEPATH to the folder that contains it.
> 
>         Regards,
>         Joni
> 
>         On 06 October 2017 at 18:26:00 EEST Zoltan.Kovacs at esi-group.com
>         <mailto:Zoltan.Kovacs at esi-group.com> wrote:
> 
>             Hi Joni,
> 
>             I see. However I found MSCV2013 32 bit version for Qt 5.8. I
>             install
>             that version and I built the VTK binaries for win32 platform
>             with
>             MVS2013. After having copied the VTK plugin file into the
>             plugin folder
>             of QtCreator I could launch it successfully. The QVTKWidget
>             is in the
>             Widget list of QtCreator now. I could insert a QVTKWidget in
>             the UI form
>             as well. The only problem now is that QtCreator cannot find
>             the header
>             file for QVTKWidget. It is not cleat how to set the
>             INCLUDEPATH in the
>             project file since VS2103 did not create a separate include
>             folder in
>             the target folder C:/VTK/bin for the VTK binaries. Only the
>             library
>             files have a separate folder, C:/VTK/bin/lib/Release.
> 
>             Regards,
>             Zoltan
> 
>             Am 06.10.2017 um 12:08 schrieb support at qt.io
>             <mailto:support at qt.io>:
> 
>                 Hi Zoltan,
> 
>                 On 06 October 2017 at 13:00:00 EEST
>                 Zoltan.Kovacs at esi-group.com
>                 <mailto:Zoltan.Kovacs at esi-group.com> wrote:
> 
>                     Hi Joni,
> 
>                     Thank you very much for your answer. Then I try to
>                     install everything
>                     from scratch. The only prolem is I have only MSVC
>                     2103 and the only
>                     option in the selection list of the online installer
>                     for MSVC 2013 is
>                     the 64 bit version. Is there somewhere an installer
>                     on your website wich
>                     provides a relatively new Qt version with MSVC 2103
>                     32 bit version?
>                     Thank you very much for your help.
> 
> 
>                 No, but you could compile it from source yourself.
>                 However, note that you cannot build plugins for new Qt
>                 Creator with MSVC 2013 as it uses different ABI. You
>                 could use MSVC 2015 or MSVC 2017.
> 
>                 Or you could build 64bit version of Qt Creator from
>                 source with that Qt version you have installed.
> 
>                 Regards,
>                 Joni
>                 --
>                 Joni Poikelin
>                 Software Engineer,
>                 The Qt Company
>>                 FAQs - https://wiki.qt.io/KnowledgeBase:SupportFAQ
>                 <https://wiki.qt.io/KnowledgeBase:SupportFAQ>
> 
>         --
>         Joni Poikelin
>         Software Engineer,
>         The Qt Company
>>         FAQs - https://wiki.qt.io/KnowledgeBase:SupportFAQ
>         <https://wiki.qt.io/KnowledgeBase:SupportFAQ>
> 
>     _______________________________________________
>     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 VTK FAQ at:
>     http://www.vtk.org/Wiki/VTK_FAQ <http://www.vtk.org/Wiki/VTK_FAQ>
> 
>     Search the list archives at: http://markmail.org/search/?q=vtkusers
>     <http://markmail.org/search/?q=vtkusers>
> 
>     Follow this link to subscribe/unsubscribe:
>     http://public.kitware.com/mailman/listinfo/vtkusers
>     <http://public.kitware.com/mailman/listinfo/vtkusers>
> 
> 


More information about the vtkusers mailing list