Qt Framework用にCLion IDEを構成する方法は?これはIDE Qtと互換性がありますか、またはQtと互換性のある他のIDEがありますか?
Qt Creator以外のものを使用したいだけです。
このQuoraの議論 を読むまで、私はあなたと同じように必死でした。それは私にとって完璧に機能しました!
要約すると、2つの主要なステップがあります。
まず、CLionはCMakeを使用してコードをコンパイルします。 CMake構成ファイル(例:「CMakeLists.txt」)に基づいています。 QtベースのCMakeコマンド(「find_package」と「target_link_libraries」のある行)を追加する必要があります。
cmake_minimum_required(VERSION 3.5)
project(myqtproject)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
find_package(Qt5Widgets REQUIRED) <-- this line
add_executable(myqtproject ${SOURCE_FILES})
target_link_libraries(myqtproject Qt5::Widgets) <-- this line
次に、CLionはQtによってインストールされたcmake
バイナリを使用する必要があります。そのためには、「設定」->「ビルド、実行、展開」->「CMake」に移動し、「CMakeオプション」でQtが使用するCMakeパスを追加します。これはQtがインストールされているディレクトリにあります。たとえば、OSXの場合:
-DCMAKE_PREFIX_PATH=/Users/edouard/Qt/5.7/clang_64/lib/cmake
main.cpp
で小さなテストスクリプトを実行することで、すべてが正常に機能していることをテストできます。
#include <QApplication>
#include <QDebug>
using namespace std;
int main() {
qDebug() << QT_VERSION_STR;
return 1;
}
次のように表示されます:
/Users/edouard/Library/Caches/CLion2016.2/cmake/generated/myqtproject-89a4132/89a4132/Debug/untitled
5.7.0
Process finished with exit code 1
[〜#〜] update [〜#〜]
Qt5モジュール(たとえばQSql)を追加する問題に悩まされました。これを行うには、CMakeLists.txtを追加します。
find_package(Qt5Sql REQUIRED)
他のfind_package
の直後に、最後の行を追加します:
target_link_libraries(myqtproject Qt5::Widgets Qt5::Sql)
他のすべてのQt5モジュールでこれを行うことができます。
このアプローチは、最新Qtバージョンで使用される最も簡単な方法の1つです。
Qt: 5.10.1
CLion: 2018.1.2
GDB: 8.1
プロジェクトのセットアップ
InCLion:
CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(PROJECT_NAME)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_PREFIX_PATH "PATH_TO_QT/QT_VERSION/QT_Arch/lib/cmake")
find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Quick REQUIRED)
add_executable(PROJECT_NAME main.cpp MainWindow.cpp MainWindow.h qml.qrc)
target_link_libraries(PROJECT_NAME Qt5::Core)
target_link_libraries(PROJECT_NAME Qt5::Widgets)
target_link_libraries(PROJECT_NAME Qt5::Quick)
Mocがリソース上でプロシージャを実行できるようにするには、リソースファイル(.qrc)をadd_executableリストに追加し、qmls、textsなどの内部ファイルにアクセスできるようにする必要があります。
qmlファイルはqrcファイルに含まれ、実行時にQQmlApplicationEngineを使用してロードする必要があります
デバッガ:
Qtタイプからのデバッグセッションで人間が読めるビューを表示するには、新しいGDBをシステムにインストールし、プリティプリンターを使用可能にする必要があります。
Qt5用のきれいなプリンター:
1-LekensteynQt5 Pretty Printers(Working):
住所: https://github.com/Lekensteyn/qt5printers
セットアップ:〜/ .gdbinit
python
import sys, os.path
sys.path.insert(0, os.path.expanduser('~/.gdb'))
import qt5printers
qt5printers.register_printers(gdb.current_objfile())
end
2-公式(機能していません!!!):
"PATH_TO_QT/QT_VERSION/QT_Arch/Tools/QtCreator/share/qtcreator/debugger/"
セットアップ:〜/ .gdbinit
付属のreadmeファイルに記載されているとおり(ただし機能しません!):
python sys.path.insert(1, '<path/to/qtcreator>/share/qtcreator/debugger/')
python from gdbbridge import *
外部ツール
「ファイル->設定->ツール->外部ツール」で、4つの外部ツールを追加します。
Qt Creator:
Program: "PATH_TO_QT/QT_VERSION/QT_Arch/Tools/QtCreator/bin/qtcreator"
Arguments: $FilePath$
UIデザイナー:
Program: "PATH_TO_QT/QT_VERSION/QT_Arch/lib/bin/designer")
Arguments: $FilePath$
LUpdate:
Program: "PATH_TO_QT/QT_VERSION/QT_Arch/lib/bin/lupdate")
Arguments: $FilePath$ -ts $FileNameWithoutExtension$.ts
言語学者:
Program: "PATH_TO_QT/QT_VERSION/QT_Arch/lib/bin/linguist")
Arguments: $FilePath$
これで、これらのファイルタイプを右クリックして、外部ツールの下で使用できます。
自動美化器
Qt Creatorで「Uncrustify」などの美化ツールを使用して、ソースファイルの保存時にコードを自動美化した場合:
Tom Lankが言及しているように、QtプロジェクトはCMakeで管理し、CMakeでビルドできるようになり、CLionが幸せになりました。
Qt5のCMakeマニュアル はその方法を説明しています。ここでは、Qtが内部で多くの魔法を提供します。これについては、 CMakeドキュメンテーション で詳しく説明されています。
Qt CMakeのマニュアル以上で言及されていないことの1つは、次の行も必要なことです。
_set(CMAKE_AUTOUIC ON) # if you have any .ui files
set(CMAKE_AUTORCC ON) # if you have any .qrc files
_
set()
へのこれらの呼び出しはすべて、おそらくfind_package(Qt5Widgets REQUIRED)
行の前に来るはずです。また、.uiまたは.qrcファイルを、.cppファイルとともにadd_executable()
への呼び出しの依存関係として含めます。
これは、最初はWebをブラウズすることで非常に混乱しましたが、qt_*()
またはqt5_*()
への呼び出しは必要ありません。私が知る限り、これらはこれに取って代わりました。
_CMakeLists.txt
_が実際に正しく動作することをテストするには、プロジェクトとして_CMakeLists.txt
_を読み込んでビルドすることにより、Qt Creator内でビルドを試すことができます。
確認したら、CMakeLists.txt
_ファイルをCLionのプロジェクトとしてロードできます。ほとんどの場合、find_package
_の前に、次のような行でQtパッケージの場所をCMakeに指示する必要があります。
_set(CMAKE_PREFIX_PATH "C:/Qt/5.9/msvc2015_64")
_
最後に、Windowsで実行/ビルドしている場合、QtはGCC/Mingw32ライブラリで事前にビルドされていません。 Visual Studioでビルドする必要があります。幸いなことに、 CLionはVisual Studioを実験的にサポートしています であり、Qtプロジェクトで動作することがわかりました。 64ビットモードでビルドし、Qtのビルド前ライブラリと互換性を持たせるために、アーキテクチャ(設定->ビルド、実行、開発-> CMake)を必ずx86_AMD64に設定してください。
これらはすべて、CLion 2017.1、Qt 5.9、およびVisual Studio 2015コンパイラーでテストされています。
CLionでQTアプリケーションを構築できます。 QTは、すべての詳細を処理するCMakeモジュールを提供します。
次のCMakeスクリプトは、サンプルアプリケーション「 Dynamic Layouts Example 」をビルドします
cmake_minimum_required(VERSION 3.7)
project(qtlayoutexample)
set(CMAKE_CXX_STANDARD 14)
# Find QT packages
find_package(Qt5Widgets)
# Add the include directories for the Qt 5 Widgets module to
# the compile lines.
include_directories(${Qt5Widgets_INCLUDE_DIRS})
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
# Add compiler flags for building executables (-fPIE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
qt5_generate_moc(main.cpp main.moc)
# Tell CMake to create the qtlayoutexample executable
add_executable(qtlayoutexample main.cpp dialog.cpp main.moc)
#Link the qtlayoutexample executable to the Qt 5 widgets library.
target_link_libraries(qtlayoutexample Qt5::Widgets)
詳細情報 CMakeを使用したQtアプリケーションの構築について 。
このリンクにはクイックスタートプロジェクトがあり、CMakeListsのCMAKE_PREFIX_PATHを使用したいQtパッケージコンパイラの場所に変更する必要があります(私のものはgcc_64で、デフォルトはclang_64です)すでに設定されている回答:
https://github.com/ArneGockeln/qtstarter
さらに、(UbuntuベースのLinuxの場合)ここで説明するようにOpenGLライブラリをインストールする必要がありました( https://askubuntu.com/questions/11378/how-do-i-set-up-an-opengl -programming-environment )。
必要なのは、QTインストール..Qt\5.10.1\mingw53_32\bin;
PATHに。後でPCを再起動することを忘れないでください。CLionは何らかの理由でパスを更新できないため、完全なPC再起動のみが役立ちます。
CMakeをビルドツールとして使用すると、VC、Eclipse、CLionなどでQtを簡単に開発できます。 CMakeは、各IDEのプロジェクトファイルを生成します。この方法でいくつかのIDEを使用していました。この旅の後、私はQt Creatorのさらに幸せなユーザーになりました。