Skip to content


# ShowEvent

VTKEx/Cxx/Qt/ShowEvent

Question

If you have a simple question about this example contact us at VTKExProject If your question is more complex and may require extended discussion, please use the VTK Discourse Forum

### 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
      vtkNone 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.