qt 4はqt 5に移行します
qt 5はqt 4より少し進歩しました.しかも、qt 4からqt 5への移行は難しくないです.http://doc.qt.io/qt-5/qt5-intro.html .とにかく、早く勉強したほうがいいです.
この論文では結果をまとめます.私は移動中の心得をいくつかまとめます.
一、qt 4とqt 5の構成が異なる1.1常用環境変数.Qt 5でよく使われるmoduleは大体Qt 5 Core、Qt 5 DBus、Qt 5 Gui、Qt Widgets、Qt 5 Multiedia、Qt 5 Network、Qt 5 OpenGL、Qt 5 Qml Qt 5 Quick、Qt 5 WebKitなどがあります.各moduleのいくつかの固定変数は、Qt 5 Widgetsを例に挙げています.
qt 4のGiモジュールにはすべてのグラフィックコントロールが含まれており、Qt 5内ですべてQt 5 Widgetsに移行しました.それに応じて、熘includeは嗳includeに置き換えられます.
二、使用例でよくある変数を調べたら、残りは簡単になります.qt 5で各モジュールを分離し、find_packagesもそれに応じて分離して検索します.これは自分の必要なものだけにして、結果ファイルのサイズを減らすことができます.qt公式サイトではcmake 2.8.11以上のバージョンのcmakeを使用することを推奨していますが、ここではこのバージョンの下でqt 5の使用を説明します.相変わらずQt 5 Widgetsを例に挙げている:
三、ファイルを導入するqt 5では、導入ファイル(IMPORTED targetts)への応用が大きくなり、導入ファイルはすべてのmodule関連ファイル(ヘッダファイル、ライブラリなど)を含み、使いやすい.3.1属性ユーザは、ファイルアクセス属性を導入することにより、例えば:
ユーザは、導入されたファイル構成configureプロセスを使用することもできる.configureをreleaseに設定する場合:
qt 5のQt 5 Network、Qt 5 SQL、Qt 5 GUI、and Qt 5 Widgetsにはプラグインがあり、ファイルを導入することによって便利なアクセスができます.
マクロのこの部分の変化はとても小さくて、マクロの名前の中のqt 4だけをqt 5に変えます.以下はマクロの説明を列挙しないで、マクロの位置だけを列挙します.
Qt 5 Core包含:qt 5_wrap_cpp、qt 5_add_レスポンス、qt 5_ゲナート_moc、qt 5_アメリカ.modules
Qt 5 Widgets包含:qt 5_wrap_ui
Qt 5 DBus包含:qt 5_add_dbus_インターフェース、qt 5_add_dbus_インターフェース、qt 5_add_dbus_adator、qt 5_ゲナート_dbus_インターフェース
Qt 5 Lingugist Toolsは含みます:qt 5_クリアードtranslation、qt 5_add_トラック
五、細部の変化
公式サイトを参照:https://wiki.qt.io/Transition_fromQt_4.x_to_Qt 5
この論文では結果をまとめます.私は移動中の心得をいくつかまとめます.
一、qt 4とqt 5の構成が異なる1.1常用環境変数.Qt 5でよく使われるmoduleは大体Qt 5 Core、Qt 5 DBus、Qt 5 Gui、Qt Widgets、Qt 5 Multiedia、Qt 5 Network、Qt 5 OpenGL、Qt 5 Qml Qt 5 Quick、Qt 5 WebKitなどがあります.各moduleのいくつかの固定変数は、Qt 5 Widgetsを例に挙げています.
Qt5Widgets_VERSION_STRING module
Qt5Widgets_LIBRARIES target_link_libraries
Qt5Widgets_INCLUDE_DIRS
Qt5Widgets_DEFINITIONS add_definitions
Qt5Widgets_COMPILE_DEFINITIONS COMPILE_DEFINITIONS
Qt5Widgets_FOUND
Qt5Widgets_EXECUTABLE_COMPILE_FLAGS
2.2ファイル移行qt 4のGiモジュールにはすべてのグラフィックコントロールが含まれており、Qt 5内ですべてQt 5 Widgetsに移行しました.それに応じて、熘includeは嗳includeに置き換えられます.
二、使用例でよくある変数を調べたら、残りは簡単になります.qt 5で各モジュールを分離し、find_packagesもそれに応じて分離して検索します.これは自分の必要なものだけにして、結果ファイルのサイズを減らすことができます.qt公式サイトではcmake 2.8.11以上のバージョンのcmakeを使用することを推奨していますが、ここではこのバージョンの下でqt 5の使用を説明します.相変わらずQt 5 Widgetsを例に挙げている:
cmake_minimum_required(VERSION 2.8.11)
project(testproject)
set(CMAKE_PREFIX_PATH ${path_to_qt5_root}) # ! ,qt5 modules
set(CMAKE_INCLUDE_CURRENT_DIR ON) # qt5
set(CMAKE_AUTOMOC ON) # ! cmake moc
find_package(Qt5Widgets REQUIRED) # REQUIRED, ,
add_executable(helloworld WIN32 main.cpp)
target_link_libraries(helloworld Qt5::Widgets) # module , Qt5::
Qt 5 Coreを使ったら、ぜひinclude_directores($Qt 5 CoregauINCLUDEuDIRS)でなければ、関連ヘッダファイル(mac上)が見つかりません.三、ファイルを導入するqt 5では、導入ファイル(IMPORTED targetts)への応用が大きくなり、導入ファイルはすべてのmodule関連ファイル(ヘッダファイル、ライブラリなど)を含み、使いやすい.3.1属性ユーザは、ファイルアクセス属性を導入することにより、例えば:
find_package(Qt5Core)
get_target_property(QtCore_location Qt5::Core LOCATION) # LOCATION ,cmake , http://www.cmake.org/cmake/help/v2.8.11/cmake.html#prop_tgt:LOCATION
3.2配置ユーザは、導入されたファイル構成configureプロセスを使用することもできる.configureをreleaseに設定する場合:
find_package(Qt5Core)
set(CMAKE_CXX_FLAGS_COVERAGE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-arcs -ftest-coverage")
set_target_properties(Qt5::Core PROPERTIES MAP_IMPORTED_CONFIG_COVERAGE "RELEASE")
3.3プラグインqt 5のQt 5 Network、Qt 5 SQL、Qt 5 GUI、and Qt 5 Widgetsにはプラグインがあり、ファイルを導入することによって便利なアクセスができます.
foreach(plugin ${Qt5Network_PLUGINS})
get_target_property(_loc ${plugin} LOCATION)
message("Plugin ${plugin} is at location ${_loc}")
endforeach()
マクロマクロのこの部分の変化はとても小さくて、マクロの名前の中のqt 4だけをqt 5に変えます.以下はマクロの説明を列挙しないで、マクロの位置だけを列挙します.
Qt 5 Core包含:qt 5_wrap_cpp、qt 5_add_レスポンス、qt 5_ゲナート_moc、qt 5_アメリカ.modules
Qt 5 Widgets包含:qt 5_wrap_ui
Qt 5 DBus包含:qt 5_add_dbus_インターフェース、qt 5_add_dbus_インターフェース、qt 5_add_dbus_adator、qt 5_ゲナート_dbus_インターフェース
Qt 5 Lingugist Toolsは含みます:qt 5_クリアードtranslation、qt 5_add_トラック
五、細部の変化
公式サイトを参照:https://wiki.qt.io/Transition_fromQt_4.x_to_Qt 5