# vtkResliceImageViewer doesn't work with QQuickVTKItem

**URL:** <https://discourse.vtk.org/t/vtkresliceimageviewer-doesnt-work-with-qquickvtkitem/10739>\
**Category:** Development\
**Created:** [February 21, 2023, 7:40am UTC](https://discourse.vtk.org/t/vtkresliceimageviewer-doesnt-work-with-qquickvtkitem/10739 "2023-02-21T07:40:40Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![gevorgyan2.7.99](https://discourse.vtk.org/user_avatar/discourse.vtk.org/gevorgyan2.7.99/32/6580_2.png) [@gevorgyan2.7.99](https://discourse.vtk.org/u/gevorgyan2.7.99)\
**Post date:** [February 21, 2023, 7:40am UTC](https://discourse.vtk.org/t/vtkresliceimageviewer-doesnt-work-with-qquickvtkitem/10739/1 "2023-02-21T07:40:41Z")

</div>

Hi all.  
I use the QQuickVTKItem module in my QtQuick pet-project, simple object rendering and even voxel rendering work fine!  
But the trouble with 2d DICOM images ☹  
I tried different solutions, and replacing the interactor and replacing the style itself, everything leads to a large list of warnings  
Here is code below for reading DICOM files and rendering via vtkResliceImageViewer:

```auto
#ifndef MYVTKITEM_H
#define MYVTKITEM_H

#include "QQuickVTKItem.h"

class MyVtkItem : public QQuickVTKItem
{
public:
    vtkUserData initializeVTK(vtkRenderWindow *renderWindow) override;
};

#endif // MYVTKITEM_H

```

```auto

#include "MyVtkItem.h"

#include <vtkActor.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkMinimalStandardRandomSequence.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkObjectFactory.h>
#include <vtkPolyDataMapper.h>
#include <vtkPropPicker.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkSphereSource.h>

#include <vtkResliceImageViewer.h>
#include <vtkImageReader2.h>
#include <vtkDICOMDirectory.h>
#include <vtkGlobFileNames.h>
#include <vtkDICOMReader.h>

#include <vtkColorTransferFunction.h>
#include <vtkPiecewiseFunction.h>
#include <vtkVolumeProperty.h>
#include <vtkGPUVolumeRayCastMapper.h>
#include <vtkImageActor.h>
#include <vtkInteractorStyleRubberBandZoom.h>
#include <vtkInteractorStyleImage.h>
namespace 
{
    struct MyVtkData : vtkObject
    {
        static MyVtkData* New();
        vtkTypeMacro(MyVtkData, vtkObject);
    
        // Place all your persistant VTK objects here
    };

vtkStandardNewMacro(MyVtkData);
}

QQuickVTKItem::vtkUserData MyVtkItem::initializeVTK(vtkRenderWindow *renderWindow)
{
    auto vtk = vtkNew<MyVtkData>();

    vtkNew<vtkRenderer> renderer;
    renderWindow->SetSize(renderWindow->GetScreenSize());
    renderWindow->SetWindowName("DICOM Images");
    renderer->SetBackground(0,0.3,0);
    renderWindow->AddRenderer(renderer);
    
    vtkSmartPointer<vtkImageReader2> dataSet = nullptr;

    auto globFileNames = vtkSmartPointer<vtkGlobFileNames>::New();
    globFileNames->SetDirectory("directory path");
    globFileNames->AddFileNames("*.dcm");

    auto directoryReader = vtkSmartPointer<vtkDICOMDirectory>::New();
    directoryReader->RequirePixelDataOn();
    directoryReader->SetInputFileNames(globFileNames->GetFileNames());
    directoryReader->Update();

    vtkNew<vtkDICOMReader> reader;
    reader->SetFileNames(directoryReader->GetFileNamesForSeries(0));
    reader->SetMemoryRowOrderToFileNative();
    reader->Update();

    dataSet = reader;
    
    vtkNew<vtkResliceImageViewer> _reslicer;
    _reslicer->SetupInteractor(renderWindow->GetInteractor());
    _reslicer->SetInputData(dataSet->GetOutput());
    _reslicer->SetRenderWindow(renderWindow);
    _reslicer->SetSliceOrientationToXY();
    _reslicer->SliceScrollOnMouseWheelOff();
    _reslicer->SetRenderer(renderer);
    _reslicer->SetResliceModeToAxisAligned();
    _reslicer->SetColorLevel(40.0);
    _reslicer->SetSlice(_reslicer->GetSliceMax() / 2);
    _reslicer->SetColorWindow(4000.0);
    _reslicer->SetResliceMode(0);

    return vtk;
}

```

 ![изображение](https://discourse.vtk.org/uploads/default/original/2X/a/ad32d61a072a0591f8abf102fa9a740382df4817.png)

 ![изображение](https://discourse.vtk.org/uploads/default/original/2X/7/7ede862871a9ba0c36f29d069df9c7c65f8f5ac4.png)

Src module:

[https://gitlab.kitware.com/john-stone/vtk/-/tree/john-stone/QML/GUISupport/QtQuick](https://gitlab.kitware.com/john-stone/vtk/-/tree/john-stone/QML/GUISupport/QtQuick)

Everything works in the app Qt widgets, but not in QtQuick.Can you suggest what could be causing this?

---

<div class="post-metadata">

**Author:** ![Paulo\_Carvalho](https://discourse.vtk.org/user_avatar/discourse.vtk.org/paulo_carvalho/32/370_2.png) [@Paulo\_Carvalho](https://discourse.vtk.org/u/Paulo_Carvalho)\
**Post date:** [February 23, 2023, 12:21pm UTC](https://discourse.vtk.org/t/vtkresliceimageviewer-doesnt-work-with-qquickvtkitem/10739/2 "2023-02-23T12:21:44Z")

</div>

Hello,

Are using `QQuickVTKRenderWindow` for your render window?

best,

PC

---

<div class="post-metadata">

**Author:** ![gevorgyan2.7.99](https://discourse.vtk.org/user_avatar/discourse.vtk.org/gevorgyan2.7.99/32/6580_2.png) [@gevorgyan2.7.99](https://discourse.vtk.org/u/gevorgyan2.7.99)\
**Post date:** [February 23, 2023, 9:19pm UTC](https://discourse.vtk.org/t/vtkresliceimageviewer-doesnt-work-with-qquickvtkitem/10739/3 "2023-02-23T21:19:00Z")

</div>

No, they use `vtkGenericOpenGLRenderWindow`:

 ![изображение](https://discourse.vtk.org/uploads/default/original/2X/9/97350d7e7f162b4bb057fda6a076e544b4b2f7ab.png)

@Paulo_Carvalho

---

<div class="post-metadata">

**Author:** ![Paulo\_Carvalho](https://discourse.vtk.org/user_avatar/discourse.vtk.org/paulo_carvalho/32/370_2.png) [@Paulo\_Carvalho](https://discourse.vtk.org/u/Paulo_Carvalho)\
**Post date:** [February 23, 2023, 9:21pm UTC](https://discourse.vtk.org/t/vtkresliceimageviewer-doesnt-work-with-qquickvtkitem/10739/4 "2023-02-23T21:21:25Z")

</div>

I’d advise against using that. There are specific render windows for each GUI framework for a reason.

---

<div class="post-metadata">

**Author:** ![gevorgyan2.7.99](https://discourse.vtk.org/user_avatar/discourse.vtk.org/gevorgyan2.7.99/32/6580_2.png) [@gevorgyan2.7.99](https://discourse.vtk.org/u/gevorgyan2.7.99)\
**Post date:** [February 23, 2023, 9:27pm UTC](https://discourse.vtk.org/t/vtkresliceimageviewer-doesnt-work-with-qquickvtkitem/10739/5 "2023-02-23T21:27:08Z")

</div>

`QQuickVTKRenderWindow` is deprecated.

 ![изображение](https://discourse.vtk.org/uploads/default/original/2X/7/7c0432b0b71c2cb42372aa4d12243ecaeeced6ca.png)

---

<div class="post-metadata">

**Author:** ![Paulo\_Carvalho](https://discourse.vtk.org/user_avatar/discourse.vtk.org/paulo_carvalho/32/370_2.png) [@Paulo\_Carvalho](https://discourse.vtk.org/u/Paulo_Carvalho)\
**Post date:** [February 23, 2023, 9:43pm UTC](https://discourse.vtk.org/t/vtkresliceimageviewer-doesnt-work-with-qquickvtkitem/10739/6 "2023-02-23T21:43:25Z")

</div>

If you’re working on a production software, I’d give it a try any way. It won’t be gone anytime soon given depecreation was set very recently (v. 9.3).
