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を例に挙げています.
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