よくある質問
Qt Creator に関するよくある質問への回答です。
また、「既知の問題」や「使い方」のセクション、あるいは「デバッグ」などの特定の分野に関する「トラブルシューティング」のセクションにも、ご質問に対する答えが見つかるかもしれません。
一般的な質問
Qt Creator MinGW に同梱されていますが、Qt ではこのバージョンを使用すべきですか?
Qt のバージョンに合わせてビルドされたバージョンを使用してください。
Qt Creator Git、Ninja、コンパイラなどのヘルパーアプリケーションが見つかりません。どうすればよいですか?
Qt Creator を起動する際に、そのアプリケーションがシステムの PATH に含まれていることを確認してください。また、[Preferences ] を選択して、そのアプリケーションに指定されている設定を確認してください。多くのプラグインは、必要なツールへのパス、またはそれらが実行される環境のいずれかを指定しています。
また、「環境設定の編集」で説明されているように、ツールの検索および実行環境をグローバルに、あるいは特定のプロジェクトやキットに対して指定することもできます。
これは、ターミナルアプリケーションからではなく、デスクトップ(macOS の Finder、Dock、Spotlight、あるいは Gnome の Dock、Dash、アクティビティ概要など)からQt Creator を起動する場合に特に重要です。 その場合、起動されたアプリケーションは、シェル(ターミナルアプリケーションが使用する)用に設定した環境変数を継承せず、代わりにlaunchd (macOS)またはgnome-shell (Gnome)から環境変数を取得します。 つまり、macOS上のHomebrew用の/usr/local/bin や/opt/homebrew/bin など、ターミナル用に設定したパスは、デスクトップからQt Creator を起動した場合、自動的に利用可能にはなりません。
報告された問題は解決されましたか?
Qt Project Bug Tracker で、あらゆる問題を検索することができます。
Qt Widgets Designer 統合に関する質問
スタンドアロン版のQt Widgets Designer では動作するにもかかわらず、Design モードではカスタムウィジェットが読み込まれないのはなぜですか?
Qt Widgets Designer は標準の場所からプラグインを取得し、そのビルドキーに一致するプラグインを読み込みます。スタンドアロン版と統合版Qt Widgets Designer では、その場所が異なります。
詳細については、「Qt Widgets Designer プラグインの追加」を参照してください。
QMLおよびQt Quick に関する質問
モジュールがあるにもかかわらず、QMLのインポート文の下に赤い線が表示されるのはなぜですか?
デフォルトでは、Qt Creator はQt Qmlインポートパスを参照してQMLモジュールを探します。場合によっては正しく認識されないことがあり、モジュールの場所を指定する必要があります。ビルドシステムとしてqmakeを使用する場合は、アプリケーションの.pro ファイルでQML_IMPORT_PATH を指定してください。CMakeを使用する場合は、CMakeLists.txt ファイルにset コマンドを追加してください。
これにより、QMLコードのコード補完が可能になり、エラーメッセージも解消されます。
以下の例は、異なるターゲットプラットフォーム向けのビルドキットと実行キットを切り替える際に正常に動作するように、qmake プロジェクトのインポートパスを指定する方法を示しています。
TEMPNAME = $${QMAKE_QMAKE} MY_QTPATH = $$dirname(TEMPNAME) QML_IMPORT_PATH += $$MY_QTPATH/../qml message("my QML Import Path: "$$QML_IMPORT_PATH)
CMake プロジェクトのインポートパスの設定方法の詳細については、「QML モジュールのインポート」を参照してください。
Qt Creator が OpenGL サポートの欠如についてエラーを報告した場合はどうすればよいですか?
Qt Creator の一部(QML Profiler など)は、描画にOpenGL APIに依存するQt Quick 2を使用しています。残念ながら、OpenGLの使用は、特にリモート環境や古いドライバを使用している場合に問題を引き起こす可能性があります。このような場合、Qt Creator はコンソールにOpenGL関連のエラーメッセージを表示するか、Windowsデバッガーのログに記録します。
修正方法や回避策は、環境によって異なります。最終手段として、問題の原因となっているプラグインを無効にすることもできます。
仮想マシン
仮想マシンの設定で3D アクセラレーションを有効にしてみてください。VirtualBox を使用している場合は、実験的なDirect3D サポートを含む「ゲストアドオン」がインストールされていることも確認してください。
Windows
デフォルトでは、Qt Quick はDirect3D 11を使用します。問題が発生した場合は、グラフィックドライバの更新やDirectXバージョンの更新を試みてください。dxdiag.exe を実行して、Direct3Dアクセラレーションが実際に有効になっているか確認してください。
また、QSG_RHI_BACKEND の環境変数をvulkan またはopengl に設定してみることもできます。詳細については、「Qt for Windows - グラフィックスアクセラレーション」を参照してください。
Unix
glxgears を実行して、OpenGLが概ね正常に動作するかどうかを簡単に確認できます。glxinfo の出力を確認して、OpenGLドライバやレンダラーなどの詳細情報を取得してください(アプリケーションの出力から「OpenGL」を検索してください)。
Mesa ドライバを使用している場合は、LIBGL_ALWAYS_SOFTWARE 環境変数を設定することで、OpenGL のレンダリングをソフトウェア方式に強制することができます。
プラグインの無効化
Qt Creator のプラグインを無効にすることは可能ですが、その場合は機能が制限されます:
- コマンドラインから、
-noload QmlProfiler -noload QmlDesigner引数を指定してQt Creator を起動します。 - 「Help 」>「About Plugins 」を選択して、プラグインを恒久的に無効にします。
ヘルプに関する質問
Qt API リファレンスドキュメントが表示されず、コンテキストヘルプでもトピックが見つかりません。どうすればよいですか?
以下のコマンドで Qt のバージョンと Qt ドキュメントをインストールしてください。 Qt Online Installer。
インストール済みのドキュメント(.qch ファイル)を表示したり、ドキュメントを追加したりするには、[Preferences ] > [Help ] > [Documentation] に移動します。詳細については、「外部ドキュメントの追加」を参照してください。
デバッガに関する質問
デバッガーのトラブルシューティングについては、「デバッガーのトラブルシューティング」を参照してください。
GDBのバージョンを選択できる場合、どれを使用すべきですか?
Linux および Windows では、Qt Creator と Qt のインストール時に一緒にインストールされる Python 対応の GDB バージョンを使用してください。macOS では、GDB は公式にはサポートされなくなりました。独自の Python 対応 GDB をビルドするには、「QtCreator Build Gdb」の手順に従ってください。
Python バージョン 2.6 または 2.7 を使用する必要があります。
詳細については、「サポートされているデバッガ」を参照してください。
Qt Creator でコアファイルを生成するにはどうすればよいですか?
デバッグ中にコアファイルを生成する GDB コマンドを実行するには、View > [Views ] >[Debugger Log] に移動します。「Command 」フィールドに「gcore 」と入力し、「Enter」を選択します。コアファイルは現在の作業ディレクトリに作成されます。コマンドの引数として、相対パスや絶対パスを含む別の保存先を指定することもできます。
コンパイラに関する質問
Qt Creator でマルチコアCPUを活用するにはどうすればよいですか?
Linux および macOS では、Projects モードに移行し、Build Settings で設定を選択して、Build Steps を探し、以下の値を追加します。ここで、<num> は CPU のコア数です。-j <num>
Windows では、nmake は `-j ` パラメータをサポートしていません。代わりに、jom を使用できます。jom のコンパイル済みバージョンはQt Downloads: jom からダウンロードできます。jom.exe を %PATH% に含まれる場所に配置してください。Build Settings に移動し、make コマンドとしてjom.exe を設定してください。
注: GNUmakeとは異なり 、jomはコア数を自動的に検出し、CPUのコア数と同じ数の並列プロセスを起動します。前述のように-j パラメータを使用することで、この動作を上書きすることができます。
Qtのインストールに関する質問
バイナリパッケージからインストールした Qt では QSslSocket を使用できません。どうすればよいですか?
バイナリパッケージに含まれる Qt は、QT_NO_OPENSSL が定義された状態でビルドされています。再ビルドすることは可能です。詳細については、Qt Centre: QSsl を参照してください。
Ubuntu や Debian では、ディストリビューションのどの開発パッケージが必要ですか?
sudo apt-get install libglib2.0-dev libsm-dev libxrender-dev libfontconfig1-dev libxext-dev
QtOpenGLを使用する場合は、以下も必要です:
sudo apt-get install libgl-dev libglu-dev
プラットフォームに関する質問
Qt Creator でアプリケーションの出力はどこに表示されますか?
Unix(Linux および macOS)の場合: qDebug() および関連機能は、標準出力とエラー出力を使用します。アプリケーションを実行またはデバッグする際、出力は「Application Output」で確認できます。
入力を必要とするコンソールアプリケーションの場合は、[Projects ] > [Run Settings ] > [Run in terminal] を選択します。使用するターミナルを指定するには、[Preferences ] > [Environment ] > [System] を選択します。内部ターミナルを使用するには、[Preferences ] > [Terminal ] > [Use internal terminal] を選択します。
Windowsの場合: コンソールアプリケーションとGUIアプリケーションでは、出力の表示方法が異なります。
qmake プロジェクトの場合、.pro ファイル内のCONFIG += console 設定により、アプリケーションは他のランタイムを使用してコンソールアプリケーションとしてビルドされることが指定されます。
これは、CMake プロジェクトにおける標準的な動作です。Windows で GUI アプリケーションを作成する場合、または macOS でアプリケーションバンドルを作成する場合は、CMakeLists.txt ファイル内のqt_add_executableコマンドに対して、WIN32 またはMACOSX_BUNDLE プロパティを指定する必要があります。
コンソールアプリケーションを実行すると、呼び出し元のアプリケーションのコンソールウィンドウに出力が表示されます。呼び出し元のアプリケーションがGUIアプリケーション(たとえば、Qt Creator のリリースビルド版)である場合は、新しいコンソールウィンドウが開かれます。この種のアプリケーションの場合、qDebug() および関連関数は標準出力と標準エラー出力を使用します。
コンソール・アプリケーションの場合は、[Projects ] > [Run Settings ] > [Run in terminal ] を選択することをお勧めします。
GUI アプリケーションの場合、qDebug() および関連関数は Windows API 関数 `OutputDebugString()` を使用します。出力は `Application Output` に表示されます。ただし、Qt Creator では、正しく表示するために一度に 1 つのソースからの出力しか表示できません。GUI アプリケーションからの出力を表示するには、Windows 用の DebugViewなどの外部デバッグ出力ビューアを使用できます。
新機能に関する質問
要望された機能は実装されますか?
予定されている機能であれば、タスクトラッカーで確認できます。すでに実装済みの機能については、次期リリースの変更履歴ファイルに記載されています。
Qt Creator では、なぜエディタのデフォルトでタブが使用されないのですか?
デフォルトでタブを使用しない主な理由は以下の通りです:
- タブはスケーラビリティに欠けます。5~6個のエディタを開いている分には問題なく動作しますが、10個になると扱いにくくなり、タブバーよりも多くの水平スペースが必要な場合、インターフェースがまったく機能しなくなります。
- タブは作業セットに適応しません。
- 一般的な解決策として、ユーザーにタブの並べ替え機能を提供する方法があります。しかし、そうなるとユーザーはコードを書く代わりにタブの管理に追われることになります。
- タブを使用すると、混乱を避けるために開いているエディタの数を制限せざるを得なくなります。
次のユースケースを考えてみてください。開発者はエディタを切り替えたいと考えています。
実際、開発者はエディタを切り替えたくないのですが、タスクを完了するためにそうせざるを得ない場合があります。開発者がタスクを実行する際に、より良いナビゲーション方法を提供するためには、そのタスクが何であるかを把握する必要があります。
多くのユースケースに共通する要素の一つは、開いている一連のファイルを処理している最中にエディタを切り替えることです。ファイル A と B を処理している最中に、ユーザーはファイル C を確認する必要が生じることがあります。Ctrl+Tabを選択してファイル間を移動し、ファイルの種類に応じて適切なエディタでファイルを開くことができます。リストは最後に使用した順に並べ替えられています。
また、通常、ユーザーは、異なるファイルに定義または宣言されている場合でも、関連する複数のクラスや関数を同時に扱うことがあります。Qt Creator には、そのための2つのショートカットが用意されています。F2キーでカーソル下のシンボルを追跡し、Ctrl+Shift+Uキーでそのシンボルへの参照を検索できます。
さらに、開発者は以下の操作を行うことができます:
- F4キーを押して、ヘッダーファイルとソースファイルを切り替える。
- Alt+左矢印キーを押して、ナビゲーション履歴を遡ります。
- ロケーター(Ctrl+K)を使用して、Qt Creator に目的の場所を指定できます。
ロケーターはファイルを開くために使用できますが、ファイルを開くことは、タスクを達成するための単なる一工程に過ぎません。例えば、次のようなユースケースを考えてみましょう。someclass.cpp/someclass.h に定義されている SomeClass 内の AFunction を修正する。
タブ形式のユーザーインターフェースでは、開発者はタブバーで「someclass.cpp 」を検索し、次に「::AFunction 」を検索しますが、そのファイルにはその関数が存在しないことが判明します。その後、タブバーで「someclass.h 」を検索し、その関数がインライン関数であることを確認して問題を修正しますが、どこから来たのか忘れてしまいます。
Qt Creator を使用すれば、開発者は「Ctrl+K m AFun 」と入力するだけでその関数を見つけることができます。通常、関数名の3~4文字を入力するだけで十分です。その後、問題を修正し、Alt+Backキーを押して元の場所に戻ることができます。
その他のロケーターフィルターには、クラス用の「c 」、すべてのシンボル用の「: 」、現在のファイル内のシンボル用の「. 」などがあります。
開いているドキュメントを切り替える別の方法として、「Open Documents 」ビューで目的のドキュメントを選択する方法があります。
それでもエディタでタブを使用したい場合は、[Preferences ] > [Environment ] > [Interface] の順に移動し、[Use tabbed editors] を選択してください。
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.