LoginSignup
0

posted at

updated at

QtCreator の便利な使い方

※ (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 で文字化けしてしまうのを解決します。

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
What you can do with signing up
0