# Trying to read .vtu file and show in Qt

**URL:** <https://discourse.vtk.org/t/trying-to-read-vtu-file-and-show-in-qt/12145>\
**Category:** Support\
**Created:** [August 14, 2023, 3:03pm UTC](https://discourse.vtk.org/t/trying-to-read-vtu-file-and-show-in-qt/12145 "2023-08-14T15:03:54Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Nicolas\_Granese](https://discourse.vtk.org/user_avatar/discourse.vtk.org/nicolas_granese/32/7599_2.png) [@Nicolas\_Granese](https://discourse.vtk.org/u/Nicolas_Granese)\
**Post date:** [August 14, 2023, 3:03pm UTC](https://discourse.vtk.org/t/trying-to-read-vtu-file-and-show-in-qt/12145/1 "2023-08-14T15:03:54Z")

</div>

Hello, I have this example to open .vtk file and visualize in Qt, but i need to open .vtu file too.  
So what part of the code i need to change to be possible to read this type?

Thanks in advance!

```auto
#include "mainwindow.h"
#include "./ui_mainwindow.h"

#include <QIODevice>
#include <QFileDialog>
#include <QFile>

#include <vtkCamera.h>
#include <vtkActor.h>
#include <vtkDataSet.h>
#include <vtkDataSetMapper.h>
#include <vtkDataSetReader.h>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent),
    ui(new Ui::MainWindow),
    _renderWindow(vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New()),
    _renderer(vtkSmartPointer<vtkRenderer>::New()),
    _interactor(vtkSmartPointer<QVTKInteractor>::New()),
    _interactorStyle(vtkSmartPointer<vtkInteractorStyle>::New())
{
    ui->setupUi(this);

    // Camera
    vtkSmartPointer<vtkCamera> camera = vtkSmartPointer<vtkCamera>::New();
    camera->SetViewUp(0, 1, 0);
    camera->SetPosition(0, 0, 10);
    camera->SetFocalPoint(0, 0, 0);

    _renderer->SetActiveCamera(camera);

    _interactor->SetInteractorStyle(_interactorStyle);
    _interactor->Initialize();

    _renderer->SetBackground(0,0.5,0.5);

    _renderWindow->SetInteractor(_interactor);
    _renderWindow->AddRenderer(_renderer);

    ui->openGL_VTKWidget->setRenderWindow(_renderWindow);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_openFile_btn_clicked()
{

    QString fileName = QFileDialog::getOpenFileName(this, tr("Open file"), "", "VTK Files (*.vtk)");

    // Open file
    QFile file(fileName);
    file.open(QIODevice::ReadOnly);

    ui->openGL_VTKWidget->activateWindow();

    // Create reader
    vtkSmartPointer<vtkDataSetReader> reader = vtkSmartPointer<vtkDataSetReader>::New();
    reader->SetFileName(fileName.toStdString().c_str());

    // Read the file
    reader->Update();

    // Add data set to 3D view
    vtkSmartPointer<vtkDataSet> dataSet = reader->GetOutput();

    // Actor
    vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();

    // Mapper
    vtkSmartPointer<vtkDataSetMapper> mapper = vtkSmartPointer<vtkDataSetMapper>::New();
    mapper->SetInputData(dataSet);
    actor->SetMapper(mapper);

    _renderer->AddActor(actor);
    _renderer->ResetCamera(dataSet->GetBounds());

    _renderWindow->Render();
}

```

---

<div class="post-metadata">

**Author:** ![Christos\_Tsolakis](https://discourse.vtk.org/user_avatar/discourse.vtk.org/christos_tsolakis/32/2076_2.png) [@Christos\_Tsolakis](https://discourse.vtk.org/u/Christos_Tsolakis)\
**Post date:** [August 14, 2023, 10:21pm UTC](https://discourse.vtk.org/t/trying-to-read-vtu-file-and-show-in-qt/12145/2 "2023-08-14T22:21:18Z")

</div>

Hi @Nicolas_Granese and welcome to discourse !

You can try to use [vtkXMLGenericDataObjectReader](https://vtk.org/doc/nightly/html/classvtkXMLGenericDataObjectReader.html) instead of `vtkDataSetReader`.

Check also this [example](https://examples.vtk.org/site/Cxx/IO/ReadUnknownTypeXMLFile/) about reading vtk XML files in general .

---

<div class="post-metadata">

**Author:** ![Nicolas\_Granese](https://discourse.vtk.org/user_avatar/discourse.vtk.org/nicolas_granese/32/7599_2.png) [@Nicolas\_Granese](https://discourse.vtk.org/u/Nicolas_Granese)\
**Post date:** [August 16, 2023, 2:39pm UTC](https://discourse.vtk.org/t/trying-to-read-vtu-file-and-show-in-qt/12145/3 "2023-08-16T14:39:57Z")

</div>

Hello, @Christos_Tsolakis Thanks! Is working now!
