ShowEvent
VTKExamples/Cxx/Qt/ShowEvent
Code¶
ShowEvent.cxx
#include <iostream> #include "ShowEvent.h" ShowEvent::ShowEvent(QWidget *myParent) : QWidget(myParent) { this->setupUi(this); // Do not do anything related to VTK display here! } void ShowEvent::showEvent(QShowEvent *) { // Instead, do the VTK display things here! }
ShowEventDriver.cxx
#include <QApplication> #include "ShowEvent.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); ShowEvent showEvent; showEvent.show(); return app.exec(); }
ShowEvent.ui
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>ShowEvent</class> <widget class="QWidget" name="ShowEvent"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>312</width> <height>243</height> </rect> </property> <property name="windowTitle"> <string>ShowEvent</string> </property> <layout class="QGridLayout" name="gridLayout"> <item row="0" column="0"> <widget class="QGraphicsView" name="graphicsView"> <property name="backgroundBrush"> <brush brushstyle="NoBrush"> <color alpha="255"> <red>0</red> <green>0</green> <blue>0</blue> </color> </brush> </property> </widget> </item> </layout> </widget> <resources/> <connections/> </ui>
ShowEvent.h
#ifndef ShowEventQt_H #define ShowEventQt_H #include "ui_ShowEvent.h" class ShowEvent : public QWidget, private Ui::ShowEvent { Q_OBJECT public: ShowEvent(QWidget *parent = 0); protected: void showEvent ( QShowEvent * event ); }; #endif
CMakeLists.txt¶
cmake_minimum_required(VERSION 3.3 FATAL_ERROR) project(ShowEvent) find_package(VTK COMPONENTS QUIET) if (NOT VTK_FOUND) message("Skipping ShowEvent: ${VTK_NOT_FOUND_MESSAGE}") return () endif() message (STATUS "VTK_VERSION: ${VTK_VERSION}") if (VTK_VERSION VERSION_LESS "8.90.0") # old system include(${VTK_USE_FILE}) add_executable(ShowEvent MACOSX_BUNDLE ShowEvent.cxx ) target_link_libraries(ShowEvent PRIVATE ${VTK_LIBRARIES}) else () # include all components add_executable(ShowEvent MACOSX_BUNDLE ShowEvent.cxx ) target_link_libraries(ShowEvent PRIVATE ${VTK_LIBRARIES}) # vtk_module_autoinit is needed vtk_module_autoinit( TARGETS ShowEvent MODULES ${VTK_LIBRARIES} ) endif ()
Download and Build ShowEvent¶
Click here to download ShowEvent and its CMakeLists.txt file. Once the tarball ShowEvent.tar has been downloaded and extracted,
cd ShowEvent/build
If VTK is installed:
cmake ..
If VTK is not installed but compiled on your system, you will need to specify the path to your VTK build:
cmake -DVTK_DIR:PATH=/home/me/vtk_build ..
Build the project:
make
and run it:
./ShowEvent
WINDOWS USERS
Be sure to add the VTK bin directory to your path. This will resolve the VTK dll's at run time.