ウィジェット・チュートリアル
はじめに
ウィジェットは、Qtで作られたグラフィカル・ユーザー・インターフェイス(GUI)アプリケーションの基本的な構成要素です。各GUIコンポーネント(ボタン、ラベル、テキストエディタなど)は、widget 、ユーザー・インターフェース・ウィンドウのどこかに配置されるか、独立したウィンドウとして表示されます。各タイプのウィジェットは、QWidget のサブクラスによって提供されます。 は、QObject のサブクラスです。
QWidget は抽象クラスではありません。他のウィジェットのコンテナとして使用することができ、最小限の労力でサブクラス化して新しいカスタムウィジェットを作成することができます。 は、他の を配置するウィンドウを作成するためによく使用されます。QWidget QWidget
QObjectと同様に、QWidgetは、所有権を示す親オブジェクトと一緒に作成することができ、使用されなくなったオブジェクトが確実に削除されるようにします。各子ウィジェットは、親ウィジェットが占める画面領域内に表示されます。つまり、ウィンドウ・ウィジェットを削除すると、そこに含まれるすべての子ウィジェットも削除されます。
メイン関数の記述
Qtで提供されている多くのGUIサンプルは、アプリケーションを初期化する標準コードを含むmain.cpp
ファイルと、アプリケーションロジックやカスタムGUIコンポーネントを含むその他のソース/ヘッダーファイルから構成されています。
main.cpp
の典型的なmain()
関数は次のようになります:
#include <QtWidgets> // Include header files for application components. // ... int main(int argc, char *argv[]) { QApplication app(argc, argv); // Set up and show widgets. // ... return app.exec(); }
まず、QApplication オブジェクトが構築される。このオブジェクトは、コマンドラインから渡される引数で設定することができる。ウィジェットが作成され、表示された後、QApplication::exec ()が呼び出され、Qtのイベントループが開始されます。この関数が戻るまで、制御はQtに渡されます。最後に、main()
は、QApplication::exec() によって返された値を返します。
簡単なウィジェットの例
これらの単純なウィジェットの例は、すべてmain()
関数の中で書かれています。
実際のウィジェットの例
より高度な例では、ウィジェットとレイアウトを作成するコードは他のファイルに格納されます。たとえば、メインウィンドウのGUIは、QMainWindow サブクラスのコンストラクタで作成できます。
例のビルド
Qtを入手するためにバイナリパッケージをインストールした場合、あるいはQtを自分でコンパイルした場合、このチュートリアルで説明するサンプルはすでにビルドされ、実行できるようになっているはずです。もし、それらを修正して再コンパイルしたい場合は、以下の手順に従ってください:
- コマンドプロンプトから、修正したサンプルを含むディレクトリに入ります。
- コマンド・プロンプトから、修正したサンプルがあるディレクトリに入ります。
qmake
と入力し、Return を押します。これがうまくいかない場合は、実行ファイルがパス上にあることを確認するか、完全な場所を入力してください。 - Linux/Unix と macOS の場合は、
make
とタイプして、Return を押します。Visual Studio のある Windows の場合は、nmake
とタイプして、Return を押します。
実行ファイルがカレント・ディレクトリに作成されます。Windowsでは、このファイルはdebug
またはrelease
サブディレクトリにあります。この実行ファイルを実行して、サンプル・コードの動作を見ることができます。
© 2025 The Qt Company Ltd. 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.