LoginSignup
1
2

More than 1 year has passed since last update.

QtCreator の便利な使い方

Last updated at Posted at 2023-04-10

※ (2023/04/11追記) インストール手順を書いてませんでした。以下の記事を参照しながらmingw-winlibs と qt-creator を入れてください。

インストールが終わったら、デスクトップの「QtCreator」アイコンをダブルクリックして起動できます。
起動後は QtCreator のアイコンをタスクバーから右クリックしてピン止めしておくといいでしょう。
デスクトップにアイコンがない場合は、Windowsキーを押して「qtc」と入力すれば「QtCreator」のアイコンが出てくるでしょう。

QtCreator の特長

image.png

QtCreator には以下のような優れた特徴があります。

  • 高性能なエディタ
    • シンタックスハイライト機能
      • 文脈依存のコード補完機能
      • 入力中の静的コードチェック
      • GUI のデザイン機能
    • 高機能なナビゲーションツール
      • ファイル、クラス、メソッド、ドキュメント等への高速なアクセス
      • シンボルの追跡
    • ビルド、実行、デバッグ機能
    • ソースコード管理ツールに対応
    • プラグイン形式による拡張が可能
    • クロスプラットフォームで動作するため、どのプラットフォームでも同じ操作で開発ができる
    • 軽快に動作

QtCreator の使い方

QtCreatorを起動したら、メニューから「ファイル」⇒「New Project」を選択して、「非Qtプロジェクト」⇒「C++アプリケーション」を選択します。
名前をアルファベットと数字で入力し、「次へ」。ビルドシステム「CMake」のままで「次へ」。上記2パッケージをインストールしていれば、「デスクトップ」という「キット」が自動登録されているので、それがチェックされていることを確認して「次へ」。
「バージョン管理に追加」はお好みで「完了」。

main.cpp
#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World!" << endl;
    return 0;
}

上記のソースが自動作成されています。
Ctrl-Shift-B でビルド。
Ctrl-R で実行。
CMakeLists.txt を変更した後は、「ビルド」⇒「CMakeの実行」を選択してください。(但し、変更して保存すると自動的に実行されるようですが)

機能の説明のために、クラスのソースを追加します。
左側のツリーからプロジェクト名を展開して「Source Files」ノードを右クリックして、「新しいファイルを追加」を選択します。
「C/C++」から「C++クラス」を選択して「選択」をクリック。「クラス名」に「MyClass」と入力して(他はいじらず)「次へ」。
「バージョン管理に追加」はお好みで「完了」。ファイル名をクリップボードにコピーするかどうか聞かれるので「Yes」。

CMakeLists.txt が開かれるので:

add_executable(test02 main.cpp)

の部分に張り付けて

add_executable(test02 main.cpp myclass.h myclass.cpp)

のようにします。

MyClass の追加で以下のようなソースファイルが自動作成されます。

myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H

class MyClass
{
public:
    MyClass();
};

#endif // MYCLASS_H
myclass.cpp
#include "myclass.h"

MyClass::MyClass()
{

}

ここで、myclass.h にメソッドのプロトタイプを追加します。

myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H

class MyClass
{
public:
    MyClass();
    int add2(int a, int b); // ← 追加した
};

#endif // MYCLASS_H

myclass.cpp に定義を追加したいので、myclass.h の add2 の上にカーソルを合わせて「Alt-ENTER」を押します。
コンテクストメニューから「myclass.cpp に定義を追加」を選択します。
すると、myclass.cpp が自動的に開かれて以下のように MyClass::add2() の定義(中身は空)が自動追加されます。(便利機能①)

myclass.h
#include "myclass.h"

MyClass::MyClass()
{

}

int MyClass::add2(int a, int b)
{

}

もう一度、ヘッダ(myclass.h)を見たい場合は「F4」を押せば、ソースとヘッダをいったりきたりできます。
また、「#include "myclass.h"」の myclass.h の上にカーソルを置いて「F2」を押すことによりヘッダを開くことができます。
これは自作のヘッダ以外にシステムヘッダも開くことができます。
(また、F2 は、関数名等にカーソルを合わせて、その定義に飛ぶためにも使えます)


今度は、myclass.cpp の add2 の上にカーソルを合わせて「Alt-ENTER」を押します。「定義を myclass.h へ移動する」を選択します。
そうすると、myclass.h に自動移動して、以下のようになります。(また、Alt-ENTER で .cpp に戻すこともできます)

myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H

class MyClass
{
public:
    MyClass();
    int add2(int a, int b)
    {

    }
};

#endif // MYCLASS_H

こんどは、インターフェースクラスや、仮想関数を持った親クラスのメソッドをオーバーライドする手順を紹介します。
以下のように修正しました。親クラス(この場合はインターフェースクラス)を追加して、「class MyClass: public Animal」で継承を定義しました。

myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H

// インターフェースクラス
struct Animal
{
    virtual void say() = 0; // 純粋仮想関数
};

class MyClass: public Animal
{
public:
    MyClass();
    int add2(int a, int b);
};

#endif // MYCLASS_H

ここで、「class MyClass」の名前(MyClass)の部分にカーソルを合わせて「Alt-ENTER」を押します。
「基底クラスの仮想関数を追加する」を選択します。「追加する仮想関数」を選択して「OK」をクリックします。(便利機能②)

myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H

// インターフェースクラス
struct Animal
{
    virtual void say() = 0; // 純粋仮想関数
};

class MyClass: public Animal
{
public:
    MyClass();
    int add2(int a, int b);

    // Animal interface
public:
    void say();
};

#endif // MYCLASS_H

上記のようになります。

また、「追加する仮想関数」を選択するダイアログで:

  • 「実装ファイルに定義を追加する」をコンボボックスから選んで
  • 関数宣言に "virtual" を追加kする、をチェックして
  • 関数宣言に "override" 修飾子を追加する、もチェックして

から「OK」をクリックすると・・・

myclass.h(virtualとoverrideが付いた)
#ifndef MYCLASS_H
#define MYCLASS_H

// インターフェースクラス
struct Animal
{
    virtual void say() = 0; // 純粋仮想関数
};

class MyClass: public Animal
{
public:
    MyClass();
    int add2(int a, int b);

    // Animal interface
public:
    virtual void say() override;
};

#endif // MYCLASS_H
myclass.cpp(.cppにもsay()の空定義が追加された)
#include "myclass.h"

MyClass::MyClass()
{

}

int MyClass::add2(int a, int b)
{

}

void MyClass::say()
{
}

どうでしょうか、g++ と CMake があれば Qt SDK なしで、QtCreator が使えるので、これらの便利な機能を使ってみてください。

それでは!

以下の記事もよろしくお願いいたします。Qt Creator で開発したソースが Visual Studio で文字化けしてしまうのを解決します。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2