Qtウィジェットデザイナーを知る

デザイナーの起動

Qt をインストールしたら、開発ホスト上の他のアプリケーションと同じ方法で Qt Widgets Designer を起動できます。また、Qt Creator から直接 Qt Widgets Designer を起動することもできます。Qt Creatorは、統合されたQt Widgets Designerのすべての.uiファイルをデザインモードで自動的に開きます。

一般的に、統合 Qt Widgets Designer にはスタンドアロンの Qt Widgets Designer と同じ機能が含まれています。相違点の詳細については、Qt Creatorのマニュアルを参照してください。

Qt Creator のデザイン・モードに収まらない大きなフォームがある場合は、スタンドアロンの Qt ウィジェット・デザイナーで開くことができます。

ユーザーインターフェース

スタンドアロンアプリケーションとして使用する場合、Qt Widgets Designerのユーザーインターフェイスは、マルチウィンドウユーザーインターフェイス(デフォルトモード)、またはドッキングウィンドウモードのいずれかを提供するように設定できます。統合開発環境(IDE)から使用する場合は、マルチウィンドウ・ユーザーインターフェイスのみが使用できます。モードの切り替えは、EditメニューのPreferencesダイアログで行えます。

マルチウィンドウモードでは、各ツールウィンドウを作業スタイルに合わせて配置することができます。メイン・ウィンドウは、メニュー・バー、ツール・バー、そしてユーザー・インターフェイスを作成するために使用できるウィジェットを含むウィジェット・ボックスで構成されています。

Qtウィジェットデザイナーのメインウィンドウ

メニューバーには、フォームの管理、クリップボードの使用、アプリケーション固有のヘルプへのアクセスなど、標準的な操作がすべて用意されています。現在の編集モード、ツールウィンドウ、使用中のフォームにもメニューバーからアクセスできます。

ツールバーには、フォームの編集時に使用される一般的なアクションが表示されます。これらはメインメニューからも利用できます。

ウィジェット・ボックスには、コンポーネントのデザインに使用される一般的なウィジェットとレイアウトが表示されます。これらは、用途や特徴を反映したカテゴリに分類されています。

Qt Widgets Designer のほとんどの機能は、メニューバー、ツールバー、またはウィジェットボックスからアクセスできます。いくつかの機能は、フォームウィンドウ上で開くことができるコンテキストメニューからも利用できます。ほとんどのプラットフォームでは、コンテキストメニューを開くにはマウスの右ボタンを使用します。

Qt ウィジェット・デザイナーのウィジェット・ボックス

ウィジェット・ボックスには、Qt 標準のウィジェット、レイアウト、その他のオブジェクトが用意されています。ウィジェット・ボックスの各カテゴリには、類似した用途や関連する機能を持つウィジェットが含まれています。

カテゴリ・ラベルの横にあるハンドルをクリックすると、カテゴリ内の利用可能なオブジェクトをすべて表示できます。ウィジェット編集モードでは、ウィジェット・ボックスから適切なアイテムをフォームにドラッグし、必要な場所にドロップすることで、オブジェクトをフォームに追加できます。

Qt Widgets Designerにはスクラッチパッド機能があり、頻繁に使用するオブジェクトを別のカテゴリに集めることができます。スクラッチパッドカテゴリには、現在フォームに表示されているウィジェットをフォームからドラッグしてウィジェットボックスにドロップすることで、任意のウィジェットを入れることができます。これらのウィジェットは、他のウィジェットと同じように使用できますが、子ウィジェットを含めることもできます。ウィジェットの名前を変更したり、スクラッチパッドから削除するには、ウィジェットの上でコンテキストメニューを開いてください。

Qtにおけるレイアウトの概念

レイアウトは、ユーザーインターフェイスを構成する要素の配置と管理に使われます。Qt では、レイアウトを自動的に処理するためのクラスとして、QHBoxLayoutQVBoxLayoutQGridLayoutQFormLayout を用意しています。これらのクラスは、ウィジェットを自動的にレイアウトするという課題を解決し、予測可能な動作をするユーザーインターフェースを提供します。幸いなことに、Qt Widgets Designerでウィジェットを配置するためにレイアウトクラスの知識は必要ありません。代わりに、コンテキストメニューからLay Out HorizontallyLay Out in a Grid などのオプションを選択します。

各 Qt ウィジェットには、sizeHint() として知られる推奨サイズがあります。レイアウトマネージャは、そのサイズヒントに合うようにウィジェットのサイズ変更を試みます。場合によっては、異なるサイズを持つ必要はありません。例えば、QLineEdit の高さは、フォントサイズとスタイルによって常に固定値です。例えば、QLineEdit の幅や、アイテムビューウィジェットの幅と高さなどです。ここで、ウィジェットのサイズ制約 -minimumSizemaximumSize 制約が登場します。これらは、プロパティ・エディタで設定できるプロパティです。例えば、デフォルトのsizeHint() をオーバーライドするには、単純にminimumSizemaximumSize を同じ値に設定します。また、現在のサイズをサイズ制約値として使用するには、ウィジェットのコンテキストメニューからサイズ制約オプションのいずれかを選択します。レイアウトは、これらの制約が満たされるようにします。コードでウィジェットのサイズを制御するには、sizeHint() をコードに再実装します。

下のスクリーンショットは、グリッドを使ってデザインされた基本的なユーザーインターフェースの内訳を示しています。スクリーンショットの座標は、グリッド内の各ウィジェットの位置を示しています。

注意: グリッド内では、QPushButton オブジェクトは実際には入れ子になっています。右側のボタンはまずQVBoxLayout に配置され、下側のボタンはまずQHBoxLayout に配置されます。最後に、これらはQGridLayout の座標 (1,2) と (2,1) に配置されます。

視覚化するために、レイアウトを、可能な限り縮小し、ウィジェットをきれいに配置、同時に利用可能なスペースを最大限に利用しようとするボックスとして想像してください。

Qt のレイアウトは、次のような場合に役立ちます:

  1. 異なるウィンドウサイズに合わせてユーザーフェイスのサイズを変更する。
  2. 異なるローカライゼーションに合わせてユーザーインターフェースの要素のサイズを変更する。
  3. 異なるプラットフォームのレイアウトガイドラインを遵守するために要素を配置する。

そのため、異なるプラットフォーム、設定、言語に合わせてウィジェットを並べ替える心配はもうありません。

下の例は、異なるローカライゼーションがユーザーインターフェイスにどのような影響を与えるかを示しています。ローカライゼーションによって長い文字列のためのスペースが必要になった場合、Qt のレイアウトは自動的に拡大縮小されます。

英語のダイアログフランス語のダイアログ

ウィジェットをレイアウトするプロセスは、ウィジェットのサイズ制約をできるだけ少なくしながらレイアウト階層を作成することです。

Qt のレイアウトクラスに関する技術的な観点は、レイアウト管理ドキュメントを参照してください。

©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。