Documentation/Labs/Qt5-and-VTK8
From Slicer Wiki
Home < Documentation < Labs < Qt5-and-VTK8
This page will document experiments related to the upgrade of Slicer base to Qt5.
References
Progress
- VTK:
- Support for QVTKWidget/QVTKWidget2: Done
- QML support for VTK render windows: To Be Done - Not yet required by Slicer core - We experimented with few approaches internally and some possible approaches.
- CTK support: Done
- ITKv4: NA
- PythonQt: Done
- Slicer build system upgrade: To be done
- Add a switch similar to what is done in CTK (Add option Slicer_QT_VERSION that can be set to either 4 or 5)
- Update use of QT4_* macros (see below)
- Update packaging scripts (SlicerBlockInstallQt.cmake, SlicerCPackBundleFixup.cmake)
- Update build script to support qt5 (see https://github.com/jcfr/qt-easy-build )
- Update Slicer build instruction on developer wiki
- Usage of QT4_ macros:
$ ack --cmake -i "qt4"
CMake/SlicerMacroBuildModuleQtLibrary.cmake
116: QT4_WRAP_CPP(MODULEQTLIBRARY_MOC_OUTPUT ${MODULEQTLIBRARY_MOC_SRCS})
118: QT4_WRAP_UI(MODULEQTLIBRARY_UI_CXX ${MODULEQTLIBRARY_UI_SRCS})
121: QT4_ADD_RESOURCES(MODULEQTLIBRARY_QRC_SRCS ${MODULEQTLIBRARY_RESOURCES})
127: QT4_ADD_RESOURCES(MODULEQTLIBRARY_QRC_SRCS ${Slicer_LOGOS_RESOURCE})
CMake/SlicerMacroTranslation.cmake
83: QT4_CREATE_TRANSLATION(QM_OUTPUT_FILES ${FILES_TO_TRANSLATE} ${TS_FILES})
85: QT4_ADD_TRANSLATION(QM_OUTPUT_FILES ${TS_FILES})
CMake/SlicerMacroBuildQtModule.cmake
132: QT4_WRAP_CPP(LOADABLEMODULE_MOC_OUTPUT ${LOADABLEMODULE_MOC_SRCS})
134: QT4_WRAP_UI(LOADABLEMODULE_UI_CXX ${LOADABLEMODULE_UI_SRCS})
137: QT4_ADD_RESOURCES(LOADABLEMODULE_QRC_SRCS ${LOADABLEMODULE_RESOURCES})
143: QT4_ADD_RESOURCES(LOADABLEMODULE_QRC_SRCS ${Slicer_LOGOS_RESOURCE})
CMake/SlicerMacroBuildApplication.cmake
141: QT4_WRAP_CPP(SLICERAPPLIB_MOC_OUTPUT ${SLICERAPPLIB_MOC_SRCS})
142: QT4_WRAP_UI(SLICERAPPLIB_UI_CXX ${SLICERAPPLIB_UI_SRCS})
144: QT4_ADD_RESOURCES(SLICERAPPLIB_QRC_SRCS ${SLICERAPPLIB_RESOURCES})
CMake/SlicerBlockFindQtAndCheckVersion.cmake
22:# The CMake code used to find Qt4 has been factored out into this CMake script so that
27: find_package(Qt4)
28: if(NOT QT4_FOUND)
CMake/SlicerMacroBuildBaseQtLibrary.cmake
35:# using QT4_WRAP_CPP CMake macro
38:# QT4_WRAP_UI CMake macro
47:# using QT4_ADD_RESOURCES
141: QT4_WRAP_CPP(SLICERQTBASELIB_MOC_OUTPUT ${SLICERQTBASELIB_MOC_SRCS})
142: QT4_WRAP_UI(SLICERQTBASELIB_UI_CXX ${SLICERQTBASELIB_UI_SRCS})
144: QT4_ADD_RESOURCES(SLICERQTBASELIB_QRC_SRCS ${SLICERQTBASELIB_RESOURCES})
147: QT4_ADD_RESOURCES(SLICERQTBASELIB_QRC_SRCS ${Slicer_SOURCE_DIR}/Resources/qSlicer.qrc)
Modules/Loadable/Models/Testing/Cxx/CMakeLists.txt
15:QT4_GENERATE_MOCS(
Modules/Loadable/Transforms/Testing/Cxx/CMakeLists.txt
9:QT4_GENERATE_MOCS(
Modules/Loadable/VolumeRendering/Testing/Cxx/CMakeLists.txt
36:QT4_GENERATE_MOCS(
Libs/MRML/Widgets/CMakeLists.txt
363:QT4_WRAP_CPP(MRMLWidgets_MOC_CXX ${MRMLWidgets_MOC_SRCS})
364:QT4_WRAP_UI(MRMLWidgets_UI_CXX ${MRMLWidgets_UI_SRCS})
365:QT4_ADD_RESOURCES(MRMLWidgets_QRC_CXX ${MRMLWidgets_QRC_SRCS})
Libs/MRML/Widgets/Testing/CMakeLists.txt
139:QT4_WRAP_CPP(Tests_MOC_CXX ${Tests_MOC_SRCS})
140:QT4_GENERATE_MOCS(
CMakeLists.txt
570:# Module name should be specified as they appear in FindQt4.cmake
Base/QTCore/Testing/Cxx/CMakeLists.txt
37: QT4_GENERATE_MOCS(
42: QT4_GENERATE_MOCS(
49: QT4_GENERATE_MOCS(
54: QT4_ADD_RESOURCES(Tests Resources/${KIT}Testing.qrc)
60: list(APPEND KIT_TEST_TARGET_LIBRARIES Qt4::QtTest)
Base/QTGUI/Testing/Cxx/CMakeLists.txt
45: QT4_GENERATE_MOCS(${KIT_TEST_MOC_SRCS})
48: QT4_ADD_RESOURCES(Tests Resources/${KIT}Testing.qrc)
References
- Qt 4.8 support schedule info: http://slicer-devel.65872.n3.nabble.com/Fwd-Qt-4-8-x-support-extended-out-by-a-year-td4033248.html