インターフェイス コンポーネント Qt Widgets のスタート ガイド。クロスプラットフォームの組み込みインターフェイス開発が容易になります。

Qt は現在、最も先進的で完全なクロスプラットフォーム C++ 開発ツールです。ワンタイムの書き込みを完全に実現するだけでなく、すべてのプラットフォームで無差別に実行され、開発プロセスで必要なほぼすべてのツールが提供されます。現在、Qt は 70 以上の業界、数千の企業で使用されており、数百万のデバイスとアプリケーションをサポートしています。

クリックして Qt ウィジェット コンポーネントをダウンロードしてください(Q technology Exchange: 166830288)

導入

ウィジェットは、Qt で構築されたグラフィカル ユーザー インターフェイス (GUI) アプリケーションの基本的な構成要素です。各 GUI コンポーネント (ボタン、ラベル、テキスト エディターなど) は、UI ウィンドウのどこかに配置されるか、ウィジェットの各タイプは、 QWidget のサブクラスによって提供されます。 QWidget 自体はQObjectのサブクラスです。

QWidget は抽象クラスではなく、他のウィジェットのコンテナとして使用でき、簡単にサブクラス化して新しいカスタム ウィジェットを作成できます。QWidget は通常、他の QWidget を配置するウィンドウを作成するために使用されます。

QObjects と同様に、QWidgets は所有権を示す親オブジェクトを使用して作成でき、使用されなくなったオブジェクトは確実に削除されます。ウィジェットの場合、これらの親子関係は追加の意味を持ちます。各子ウィジェットは、その親ウィジェットが占める画面領域内に表示されます。つまり、ウィジェットを削除すると、それに含まれるすべての子ウィジェットも削除されます。

Main関数を書く

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() によって返された値を返します。

実際のウィジェットの例

これらのより高度な例では、ウィジェットとレイアウトを作成するコードは他のファイルに保存されます。たとえば、メイン ウィンドウの GUI は、QMainWindow サブクラスのコンストラクターで作成できます。

ビルド例

Qt を入手するためにバイナリ パッケージをインストールした場合、または自分で Qt をコンパイルした場合、このチュートリアルで説明されているサンプルはすでにビルドされており、実行できる状態になっているはずです。これらを変更して再コンパイルする場合は、次の手順に従います。

  1. コマンド プロンプトで、変更されたサンプルが含まれるディレクトリを入力します。
  2. 「qmake」と入力して Enter キーを押します。それが機能しない場合は、実行可能ファイルがパス上にあることを確認するか、その完全な場所を入力します。
  3. Linux/Unix および macOS では、「make」と入力して Return キーを押し、Visual Studio を使用している Windows では、「nmake」と入力して Return キーを押します。

現在のディレクトリに実行可能ファイルを作成します。Windows では、これはデバッグ サブディレクトリまたはリリース サブディレクトリにある場合があり、これを実行してサンプル コードの動作を確認できます。

おすすめ

転載: blog.csdn.net/AABBbaby/article/details/131889483