このページでは

条件の設定

when の条件を設定して、複数のコンポーネントのプロパティの真偽を評価し、これらの条件が適用される状態へUIを切り替えます。真偽の判定や、ある値以上かどうかなどの評価が可能です。また、ANDやORなどの演算子を使用して、複数のコンポーネントの真偽を評価することもできます。

状態が適用されるタイミングを決定するには:

  1. View 」 > 「Views 」 > 「States 」に移動します。

    各州の見解。

  2. When Condition 」で、「「編集」ボタン 」を選択します。
  3. Binding Editor 」で、その状態の「when 」プロパティを指定します。
  4. このプロパティの値には、状態を適用したいときに `true ` と評価されるブール式を設定します。

when の条件は、コード内の出現順に従って左から右へと評価されます。したがって、2 つの異なる状態に対して、どちらもtrue と評価される 2 つの条件がある場合、最初の状態が適用されます。

条件付きバインディングの作成

Binding Editor で、式を作成するコンポーネントとプロパティを選択します。たとえば、ボタンが押されたときに状態を変更するには、ボタンコンポーネントとその`pressed`プロパティを選択します。

「ステート」ビューのバインディングエディタ。

Binding Editor で式を構成する際、コード補完機能により、式で使用可能なコンポーネントとそのプロパティが一覧表示されます。

論理演算子の概要

式内で以下の論理演算子を使用することで、複数の条件を 1 つの式に組み合わせることができます:

演算子意味以下の条件が満たされる場合、true と評価されます。
!NOT条件が満たされない場合。
&&AND両方の条件が満たされています。
||ORいずれかの条件が満たされている。
<より小さい左側のオペランドが右側のオペランドより小さい。
>より大きい左側のオペランドが右側のオペランドより大きい。
>=以上左側のオペランドが右側のオペランド以上である。
<=以下左側のオペランドは、右側のオペランド以下です。
==等しい両オペランドは等しい。
===厳密に等しいオペランドが等しく、かつ型が同じです。
!=不等号オペランドが等しくない。
!==厳密に異なるオペランドの型が同じで値が異なる場合、または型が異なる場合。

また、チェックの前に算術演算子を使用して数値を比較することもできます。ただし、可能な限り、この目的のために個別のプロパティを作成することをお勧めします。

条件の例

ボタンが押されたときに状態を適用するには、次のように記述します:

when: control.pressed

ボタンが押されていないときに状態を適用するには、[NOT] を選択します。

バインディングエディタの「NOT」チェックボックス。

ボタンが押されておらず、選択されておらず、かつホバーもされていない場合に状態を適用するには、次のように条件を組み合わせます。

when: !control.pressed && !control.checked && !control.hovered

ボタンが押されているか選択されているが、ホバーされていない場合に状態を適用するには、次のように記述します:

when: control.pressed || control.checked && !control.hovered

「方法: 状態の操作」、「Qt Quick のUIデザイン」、および「 Qt Quick のUIデザインも参照してください

Copyright © The Qt Company Ltd. and other contributors. 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.