Qt ウィジェットデザイナーのシグナルとスロットの編集モード

Qt Widgets Designer のシグナルとスロットの編集モードでは、Qt のシグナルとスロットのメカニズムを使ってフォーム内のオブジェクトを接続することができます。Qt Widgets Designerが提供する互換性のあるシグナルとスロットのメニューを使用して、直感的な接続インターフェイスでウィジェットとレイアウトの両方を接続できます。フォームが保存されると、すべての接続は保存され、プロジェクトがビルドされたときに使用できるようになります。

Qtのシグナルとスロットの仕組みの詳細については、シグナルとスロットのドキュメントを参照してください。

オブジェクトの接続

オブジェクトの接続を開始するには、Editメニューを開き、Edit Signals/Slotsを選択するか、F4キーを押して、シグナルとスロットの編集モードに入ります。

フォーム上のすべてのウィジェットとレイアウトを連結することができます。ただし、スペーサーはレイアウトのスペーシングのヒントを与えるだけなので、他のオブジェクトと接続することはできません。

ハイライトされたオブジェクト

接続に使用できるオブジェクトの上にカーソルがある場合、そのオブジェクトはハイライトされます。

接続を行うには、マウスの左ボタンを押し、接続したいオブジェクトに向かってカーソルをドラッグします。そうすると、接続元のオブジェクトからカーソルまで線が伸びます。カーソルがフォーム上の他のオブジェクトの上にある場合、線は接続先のオブジェクトを指す矢印で終わります。これは、マウスボタンを離すと2つのオブジェクトが接続されることを示しています。

接続パスをドラッグしている間は、Escを押すことでいつでも接続を放棄することができます。

接続の作成

接続パスは、カーソルがフォーム上を移動するにつれて形を変えます。カーソルがオブジェクトの上を通過すると、そのオブジェクトはハイライトされ、シグナルとスロットの接続に使用できることを示します。接続を行うには、マウスボタンを放します。

Configure Connectionダイアログ(下図)が表示され、使用できるソースオブジェクトのシグナルとデスティネーションオブジェクトのスロットが表示されます。

接続を完了するには、ソースオブジェクトのシグナルとデスティネーションオブジェクトのスロットを選択し、OKをクリックします。接続を中止する場合は、Cancelをクリックします。

Note: Show all signals and slotsチェックボックスが選択されている場合、ソースオブジェクトから利用可能な全てのシグナルが表示されます。そうでない場合、QWidget から継承されたシグナルとスロットは非表示になります。

フォーム上のオブジェクト間の接続はいくつでもできます。オブジェクトからのシグナルをフォーム自体のスロットに接続することも可能です。その結果、多くのダイアログのシグナルとスロットの接続は、Qt Widgets Designerから完全に設定することができます。

フォームへの接続

オブジェクトをフォームに接続するには、カーソルをフォームの上に置いてマウスボタンを離します。接続の終点は電気的な "ground" シンボルに変わります。

接続の編集と削除

デフォルトでは、接続パスは、接続に関係する信号とスロットを示す2つのラベルで作成されます。これらのラベルは通常、接続の線に沿って配置されます。接続パスの両端にある赤い四角をドラッグすると、ホスト・ウィジェット内でラベルを移動できます。

シグナル/スロットエディタ

接続で使用するシグナルとスロットは、設定後に変更することができます。接続が設定されると、Qt Widgets Designer のシグナル/スロットエディタに表示され、さらに編集することができます。また、接続パスまたはそのラベルをダブルクリックして接続ダイアログを表示することでも、シグナル/スロット接続を編集できます。

接続の削除

接続のパスセグメントをクリックすると、接続全体を選択することができます。一度選択した接続はDeleteキーで削除でき、UI ファイルに設定されることはありません。

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