Difference between revisions of "Documentation/Labs/Qt5-and-VTK8"
From Slicer Wiki
Line 1: | Line 1: | ||
This page will document experiments related to the upgrade of Slicer base to Qt5. | This page will document experiments related to the upgrade of Slicer base to Qt5. | ||
+ | == Overview == | ||
− | + | Because Qt4 is not actively developed (as documented [http://blog.qt.io/blog/2014/11/27/qt-4-8-x-support-to-be-extended-for-another-year/ here] support ended), we need to work toward supporting Qt5. This page summarizes support status of the various components of Slicer stack and remaining tasks. | |
− | == | + | == Status == |
− | * VTK | + | * VTK |
− | ** Support for QVTKWidget/QVTKWidget2: Done | + | ** Support for QVTKWidget/QVTKWidget2: Done {{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. | ** 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 | + | * CTK support: Done {{done}} |
− | |||
− | * | + | * ITKv4: NA {{done}} |
− | * Slicer build system upgrade: To be done | + | |
+ | * PythonQt: Done {{done}} | ||
+ | |||
+ | |||
+ | * Slicer build system upgrade: To be done {{wip}} | ||
** Add a switch similar to what is done in CTK (Add option Slicer_QT_VERSION that can be set to either 4 or 5) | ** 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 use of QT4_* macros (see below) | ||
Line 96: | Line 100: | ||
48: QT4_ADD_RESOURCES(Tests Resources/${KIT}Testing.qrc) | 48: QT4_ADD_RESOURCES(Tests Resources/${KIT}Testing.qrc) | ||
</pre> | </pre> | ||
+ | |||
+ | == Migration Guide == | ||
+ | |||
+ | NA | ||
+ | |||
+ | == List of extensions that may require updates == | ||
+ | |||
+ | NA | ||
+ | |||
+ | == Future works == | ||
+ | |||
+ | NA | ||
== References == | == 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 | * 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 | ||
+ | * http://blog.qt.io/blog/2014/11/27/qt-4-8-x-support-to-be-extended-for-another-year |
Revision as of 19:53, 16 August 2016
Home < Documentation < Labs < Qt5-and-VTK8This page will document experiments related to the upgrade of Slicer base to Qt5.
Contents
Overview
Because Qt4 is not actively developed (as documented here support ended), we need to work toward supporting Qt5. This page summarizes support status of the various components of Slicer stack and remaining tasks.
Status
- VTK
- 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)
Migration Guide
NA
List of extensions that may require updates
NA
Future works
NA