Qt プロジェクト
Qt(英語) は、GUI アプリケーションを作成するためのクロスプラットフォームの C++ フレームワークです。Qt は独自のビルドシステム qmake(英語) を使用し、バージョン Qt4 以降の CMake(英語) でのビルドもサポートしています。
純粋な Qmake プロジェクトを CLion に直接インポートすることはできません。ただし、CMake に変換すると、通常の CMake アプリケーションとして開いて管理できます。新規プロジェクトウィザードを使用して、CLion で CMake ベースの Qt プロジェクトを作成するを実行することもできます。
CMake ベースの Qt プロジェクト
CMake バージョン 3.0 以降の場合、Qt には、CMake が Qt4 および Qt5 ライブラリを見つけて使用できるようにするモジュールが含まれています。Qt プロジェクト用に CMakeLists.txt を構成するには、次の手順を実行します。
Qt プロジェクトの CMakeLists.txt
find_package
コマンドを追加して、必要なライブラリとヘッダーファイルを見つけます。例:find_package(Qt5Widgets REQUIRED)次に、
target_link_libraries
を使用して、ターゲットをこれらのライブラリとヘッダーに依存させます。target_link_libraries(helloworld Qt5::Widgets)find_package
を正常に実行するには、Qt のインストール場所を CMake に指示する必要があります。これを行う方法の 1 つは、
CMAKE_PREFIX_PATH
変数を設定することです。CMake の設定ダイアログの-D
を介して、またはfind_package
の前にset
コマンドを介して渡すことができます。例: Windows 上の MinGW の場合:
set(CMAKE_PREFIX_PATH "C:\\Qt\\Qt5.14.0\\5.14.0\\mingw73_32\\")または
set(CMAKE_PREFIX_PATH "C:\\Qt\\Qt5.14.0\\5.14.0\\mingw73_32\\lib\\cmake\\")プロジェクトで MOC(英語)、UIC(英語)、RCC(英語) を使用する場合、次の行を追加して、対応するコンパイラーの自動呼び出しを有効にします。
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON)add_executable()
コマンドのすべての .ui および .qrc ファイルを、.cpp ソースとともにリストします。add_executable( helloworld main.cpp mainwindow.cpp application.qrc )
以下に、単純な「Hello、world」アプリケーション用の完全な CMakeLists.txt スクリプトを示します。
CLion で Qt プロジェクトをセットアップする
Windows のツールチェーン
Windows に Qt をインストールするときは、CLion、MinGW、MSVC で使用している環境に一致するディストリビューションを選択してください。
MinGW の場合、バージョンとビットネス(32 ビット MinGW または MinGW-w64)の両方がツールチェーンのセットアップと一致する必要があります。
CLion で、
(Ctrl+Alt+S)に移動し、 に移動して、Qt インストールに一致するツールチェーンを選択します。複数の Qt インストールがある場合は、必ず
CMAKE_PREFIX_PATH
で指定したものと同じツールチェーンを選択してください。例として、MinGW の場合:
CMake の設定
デバッガーレンダラー
CLion のプロジェクトには、通常 Qt ツールに付属している Qt 型のレンダラーを使用できます。ただし、現時点では、.gdbinit/.lldbinit スクリプトを使用するか、MSVC の場合はネイティブビジュアライザーを使用して、手動で設定する必要があります。
Windows MSVC
MSVC ツールチェーン用の CLion のデバッガーは、プロジェクトにネイティブビジュアライザーがある場合、使用できます。 の LLDB で NatVis レンダラーを有効にするオプションを必ず設定してください。
例: プロジェクトルートに qt5.natvis(英語) をコピーすると、CLion が自動的にそれを検出し、レンダリングに使用します。
Windows MinGW/macOS/Linux
非 MSVC ツールチェーンの場合、解決策は .gdbinit/.lldbinit を介して Qt レンダラーを構成することです。これらのスクリプトは、GDB または LLDB を呼び出すたびにそれぞれ読み込まれます。
GDB 用の KDevelop フォーマッター(英語)、LLDB 用の KDevelop フォーマッター(英語)、Lekensteyn の qt5printers (GDB)(英語) を試すか、独自のプリティプリンターを作成できます。
カスタムのプリティープリンターを作成するには、LLDB(英語) または GDB(英語) の公式の指示に従ってください。IntelliJ Rust プラグインに実装されている Rust 用のプリティプリンター(英語)を参照として使用できます。
.gdbinit/.lldbinit を介してデバッガーをレンダラーにポイントします。この github リポジトリ(英語)で例を見つけてください。
.gdbinit/.lldbinit ファイルをプロジェクトルートに配置し、ここで説明するようにホームディレクトリで許可します。
Qt デザイナーで UI ファイルを開く
デフォルトでは、CLion は Qt Designer(英語) 内の .ui ファイルを開きます。
IDE は、Qt binaries フォルダーで Qt Designer へのパスを検索します。
で指定されたQt Designer を Qt とは別にインストールした場合、CLion はそれを検出せず、エディターで .ui ファイルを開く可能性があります。この場合、次の手順を実行して Qt デザイナーで開きます。
に移動します。
認識されたファイルタイプリストから Qt UI デザイナーフォームを選択し、関連するファイル拡張子を削除します。
関連アプリケーションで開かれたファイルを選択し、
.ui
拡張子を追加します。ワイルドカードを再割り当てをクリックします。
適用をクリックし、ダイアログを閉じます。
次回プロジェクトツリーで .ui ファイルをダブルクリックすると、そのファイルが Qt デザイナーで開かれます。
CMake ベースの Qt プロジェクトの作成
CLion は、Qt 用に Qt ConsoleExecutable と QtWidgetsExecutable の 2 つのプロジェクトテンプレートを提供します。
CMAKE_PREFIX_PATH
で使用するパスを指定することもできます。準備ができたら作成をクリックします。
![Qt プロジェクトテンプレート Qt project templates](https://resources.jetbrains.com/help/img/idea/2023.3/cl_qt_projectwizard.png)
CLion は、CMAKE_PREFIX_PATH
変数を含む CMakeLists.txt が自動的に入力された、すぐに使用できるスタブプロジェクトを生成します。
![Qt コンソール実行可能テンプレートプロジェクト Qt Console Executable template project](https://resources.jetbrains.com/help/img/idea/2023.3/cl_qt_consoleexe_addprefixpath.png)
QtUI クラステンプレート
対応する .ui、.cpp、.h ファイルを使用して Qt クラスをすばやく作成できます。
プロジェクトビューで、コンテキストメニューから新規を選択するか、Alt+Insert を押します。QtUI クラスを選択してください:
開いたダイアログで、クラス名を入力し、次の設定を構成します。
ファイル名ベース - 生成する .ui / .cpp / .h ファイルの名前を指定します。
親クラス -
QWidget
、QMainWindow
、QDialog
、またはカスタム親クラスを選択します。名前空間 - 必要に応じて、囲んでいる名前空間を指定します。
ターゲットに追加 - このチェックボックスを設定すると、選択したターゲットのソースのリストに新しいファイルが自動的に追加されます。
CLion は、テンプレート(それぞれ Qt Designer フォーム、Qt クラス、Qt クラスヘッダー)に従って .ui、.cpp、.h ファイルを生成します。必要に応じて、これらのテンプレートを必要に応じて調整できます。
で定義された
Qt 固有のコードインサイト
CLion は Qt シグナルとスロットにコード補完を提供し、対応するメンバーのみを表示するように候補リストをフィルタリングします。
補完は、
SIGNAL()
およびSLOT()
マクロでも機能します。CLion の自動インポートは Qt スタイルのヘッダーファイルをサポートし、可能な限り最短の
#include
を提供します。また、CLion は、Qt 指向の静的コードアナライザーである clazy (英語) と統合されています。 で clazy チェックの重大度とレベルを構成できます。
QtCreator キーマップ
CLion は QtCreator キーマップ(英語)をバンドルします。 で切り替えるか、メインメニュー(Ctrl+`)から を呼び出すことで切り替えることができます。
![Qt キーマップへの切り替え Switching to the Qt keymap](https://resources.jetbrains.com/help/img/idea/2023.3/cl_qt_switch_keymap.png)
現在の制限
CLion のコード生成機能の一部は、
Q_PROPERTY
、Q_SIGNAL
、Q_SLOT
などの Qt マクロでは機能しない場合があります。QML は CLion ではそのままではサポートされていません ( 機能リクエスト(英語)を参照) が、QML サポートプラグイン(英語)を試すことができます。
トラブルシューティング
MinGW で実行しているときにプロセスは終了コード -1073741515 で終了しました (0xC0000135) エラーメッセージが表示される場合、問題は Windows 上の Qt デプロイ(英語)に関連している可能性があります。ダイナミックライブラリと Qt プラグインは実行中のバイナリのディレクトリから見つける必要があります。以下に説明する回避策のいずれかを試してください。
オプション 1
Qt インストールの MinGW ディレクトリ(たとえば、C:\Qt\5.15.1\mingw81_64\bin)にある bin へのパスを、システム
PATH
または構成設定の環境変数フィールドに追加します。これでプロジェクトの問題が解決しない場合は、オプション 2 を試してください。
オプション 2
Qt インストールの MinGW ディレクトリの bin にある .dll -s を、プロジェクトの生成フォルダー(デフォルトでは cmake-build-debug または cmake-build-release)にコピーします。
必要になる可能性が最も高いライブラリは libstdc++-6.dll、Qt5Widgets.dll、Qt5Gui.dll、Qt5Core.dll ですが、セットアップには他のライブラリも必要になる場合があります。
実行に使用する構成の設定で、
QT_QPA_PLATFORM_PLUGIN_PATH
環境変数を MinGW ディレクトリの plugins\platforms に設定します。詳細は、Qt プラグイン(英語)を参照してください。
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2023.3/cl_cmaketutorial_toolwindow.png)
クイック CMake チュートリアル
このチュートリアルでは、CLion で単純な CMake プロジェクトを作成および開発するプロセスを説明します。段階的に、ビルドシステムとしての CMake の基本と、CMake 固有の IDE 設定とアクションを学習します。1. シンプルな CMake プロジェクト:CMake は、CMakeLists と呼ばれるスクリプトを使用して、特定の環境用のビルドファイル (Unix マシンのメイクファイルなど) を生成するメタビルドシステムです。CLion で新しい CMake プロジェクトを作成すると、...
![](https://resources.jetbrains.com/help/img/idea/2023.3/cl_compdb_overview.png)
Compilation database
CMake、Gradle、Makefile に基づいていないプロジェクトで作業している場合でも、CLion が提供する高度な IDE 機能を利用できます。1 つの方法は、非 CMake プロジェクトをインポートし、CLion にそれを単純な CMake 構造に変換させることです。別のオプションは、compilation database をロードしてプロジェクトを開くことです。compilation database を使用すると、CLion はプロジェクトファイルを検出し、インクルードパスやコンパ...
![](https://resources.jetbrains.com/help/img/idea/2023.3/cl_custombuildtargets_settings.png)
カスタムビルドのターゲットとアプリケーション
カスタムビルドターゲットは、特定のビルドシステムやプロジェクトモデルに依存しません。CLion は、ソースのビルドとビルドアーティファクトのクリーニングに選択した外部ツールを使用します。カスタムターゲットは、compilation database プロジェクトで特に役立ちます。compile_commands.json 自体にはアプリケーションの構築と実行に必要な情報が不足していますが、カスタムターゲットとカスタム実行 / デバッグ構成はこの制限を回避できます。次の例では、compilation...
![](https://resources.jetbrains.com/help/img/idea/2023.3/cl_cmakeListsFiles.png)
CMakeLists.txt
CMakeLists.txt ファイルには、プロジェクトのソースファイルとターゲット(実行可能ファイル、ライブラリ、その両方)を記述する指示文と命令のセットが含まれています。新しいプロジェクトを作成すると、CLion は自動的に CMakeLists.txt ファイルを生成してプロジェクトのルートディレクトリに配置します。プロジェクトを開くには、CLion を最上位の CMakeLists.txt にポイントしてプロジェクトとして開くを選択します。以下の例は、単純な「Hello, World」プロジェクト...
![](https://resources.jetbrains.com/help/img/idea/2023.3/cl_toolchain_options.png)
チュートリアル: Windows で CLion を設定する
WSL ツールチェーンを使用すると、Linux の CMake とコンパイラーを使用してプロジェクトを構築し、Windows マシンで leavCLionLion を実行せずに WSL で実行 / デバッグできます。Microsoft Visual C++:システムに Visual Studio2013, 2015, 2017, 2019,, 2022 をインストールしてください。CLion で、に移動します。をクリックし、ツールチェーンテンプレートのリストから Visual Studio を選択しま...
![](https://resources.jetbrains.com/help/img/idea/2023.3/cl_cmake_settings_keymap.png)
CMake プロファイル
CMake プロジェクトのビルドに必要な設定は CMake プロファイルに組み込まれています。これには、ツールチェーンとビルド型に加え、ジェネレーターや環境変数などの CMake オプションが含まれます。たとえば、異なるコンパイラーを使用したり、異なる設定でターゲットをビルドしたりするために、プロジェクトに複数のプロファイルを構成できます。プロファイル設定にアクセスする次のいずれかを実行して、CMake プロファイル設定を開きます。に移動します。を押してアクションの検索ダイアログを開き、CMake...