VTK/Examples/Cxx/Qt/SideBySideRenderWindows
From KitwarePublic
Although this example includes ui_SimpleView.h, this file is not distributed, it is created by Qt at compile time.
Contents |
SideBySideRenderWindows.cxx
#include <QApplication> #include "SimpleView.h" int main( int argc, char** argv ) { // QT Stuff QApplication app( argc, argv ); SimpleView mySimpleView; mySimpleView.show(); return app.exec(); }
SimpleView.cxx
#include "ui_SimpleView.h" #include "SimpleView.h" #include <vtkDataObjectToTable.h> #include <vtkElevationFilter.h> #include <vtkPolyDataMapper.h> #include <vtkQtTableView.h> #include <vtkRenderer.h> #include <vtkRenderWindow.h> #include <vtkSphereSource.h> #include <vtkCubeSource.h> #include "vtkSmartPointer.h" // Constructor SimpleView::SimpleView() { this->ui = new Ui_SimpleView; this->ui->setupUi(this); // sphere vtkSmartPointer<vtkSphereSource> sphereSource = vtkSmartPointer<vtkSphereSource>::New(); sphereSource->Update(); vtkSmartPointer<vtkPolyDataMapper> sphereMapper = vtkSmartPointer<vtkPolyDataMapper>::New(); sphereMapper->SetInputConnection(sphereSource->GetOutputPort()); vtkSmartPointer<vtkActor> sphereActor = vtkSmartPointer<vtkActor>::New(); sphereActor->SetMapper(sphereMapper); // cube vtkSmartPointer<vtkCubeSource> cubeSource = vtkSmartPointer<vtkCubeSource>::New(); cubeSource->Update(); vtkSmartPointer<vtkPolyDataMapper> cubeMapper = vtkSmartPointer<vtkPolyDataMapper>::New(); cubeMapper->SetInputConnection(cubeSource->GetOutputPort()); vtkSmartPointer<vtkActor> cubeActor = vtkSmartPointer<vtkActor>::New(); cubeActor->SetMapper(cubeMapper); // VTK Renderer vtkSmartPointer<vtkRenderer> leftRenderer = vtkSmartPointer<vtkRenderer>::New(); leftRenderer->AddActor(sphereActor); vtkSmartPointer<vtkRenderer> rightRenderer = vtkSmartPointer<vtkRenderer>::New(); // Add Actor to renderer rightRenderer->AddActor(cubeActor); // VTK/Qt wedded this->ui->qvtkWidgetLeft->GetRenderWindow()->AddRenderer(leftRenderer); this->ui->qvtkWidgetRight->GetRenderWindow()->AddRenderer(rightRenderer); // Set up action signals and slots connect(this->ui->actionExit, SIGNAL(triggered()), this, SLOT(slotExit())); }; void SimpleView::slotExit() { qApp->exit(); }
SimpleView.h
#ifndef SimpleView_H #define SimpleView_H #include "vtkSmartPointer.h" #include <QMainWindow> // Forward Qt class declarations class Ui_SimpleView; class SimpleView : public QMainWindow { Q_OBJECT public: // Constructor/Destructor SimpleView(); ~SimpleView() {}; public slots: virtual void slotExit(); protected: protected slots: private: // Designer form Ui_SimpleView *ui; }; #endif // SimpleView_H
CMakeLists.txt
cmake_minimum_required(VERSION 2.8) PROJECT(SideBySideRenderWindows) FIND_PACKAGE(VTK) INCLUDE(${VTK_USE_FILE}) FIND_PACKAGE(Qt4 REQUIRED) INCLUDE(${QT_USE_FILE}) INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}") # Set your files and resources here SET(SimpleViewSrcs SideBySideRenderWindows.cxx SimpleView.cxx) SET(SimpleViewUI SimpleView.ui) SET(SimpleViewHeaders SimpleView.h) QT4_WRAP_UI(UISrcs ${SimpleViewUI}) QT4_WRAP_CPP(MOCSrcs ${SimpleViewHeaders} ) SOURCE_GROUP("Resources" FILES ${SimpleViewUI} ) SOURCE_GROUP("Generated" FILES ${UISrcs} ${MOCSrcs} ${RCS_SOURCES} ) ADD_EXECUTABLE( SideBySideRenderWindows ${SimpleViewSrcs} ${UISrcs} ${MOCSrcs}) TARGET_LINK_LIBRARIES( SideBySideRenderWindows QVTK )
This is the file that was generated using the QT4 Designer.
SimpleView.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SimpleView</class>
<widget class="QMainWindow" name="SimpleView">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>990</width>
<height>583</height>
</rect>
</property>
<property name="windowTitle">
<string>SimpleView</string>
</property>
<property name="windowIcon">
<iconset resource="Icons/icons.qrc">
<normaloff>:/Icons/help.png</normaloff>:/Icons/help.png</iconset>
</property>
<property name="iconSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QVTKWidget" name="qvtkWidgetLeft">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>511</width>
<height>541</height>
</rect>
</property>
</widget>
<widget class="QVTKWidget" name="qvtkWidgetRight">
<property name="geometry">
<rect>
<x>540</x>
<y>20</y>
<width>441</width>
<height>541</height>
</rect>
</property>
</widget>
</widget>
<action name="actionOpenFile">
<property name="enabled">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="Icons/icons.qrc">
<normaloff>:/Icons/fileopen.png</normaloff>:/Icons/fileopen.png</iconset>
</property>
<property name="text">
<string>Open File...</string>
</property>
</action>
<action name="actionExit">
<property name="icon">
<iconset>
<normaloff/>
</iconset>
</property>
<property name="text">
<string>Exit</string>
</property>
</action>
<action name="actionPrint">
<property name="icon">
<iconset resource="Icons/icons.qrc">
<normaloff>:/Icons/print.png</normaloff>:/Icons/print.png</iconset>
</property>
<property name="text">
<string>Print</string>
</property>
</action>
<action name="actionHelp">
<property name="icon">
<iconset resource="Icons/icons.qrc">
<normaloff>:/Icons/help.png</normaloff>:/Icons/help.png</iconset>
</property>
<property name="text">
<string>Help</string>
</property>
</action>
<action name="actionSave">
<property name="icon">
<iconset resource="Icons/icons.qrc">
<normaloff>:/Icons/filesave.png</normaloff>:/Icons/filesave.png</iconset>
</property>
<property name="text">
<string>Save</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>
<class>QVTKWidget</class>
<extends>QWidget</extends>
<header>QVTKWidget.h</header>
</customwidget>
</customwidgets>
<resources>
<include location="Icons/icons.qrc"/>
</resources>
<connections/>
</ui>