Tumbler QML Type
選択可能なアイテムのホイール。もっと見る...
| Import Statement: | import QtQuick.Controls |
| Inherits: |
プロパティ
- count : int
- currentIndex : int
- currentItem : Item
- delegate : Component
- flickDeceleration : int
- model : variant
- moving : bool
(since QtQuick.Controls 2.2 (Qt 5.9)) - visibleItemCount : int
- wrap : bool
(since QtQuick.Controls 2.1 (Qt 5.8))
付属物件
- displacement : real
- tumbler : Tumbler
方法
- void positionViewAtIndex(int index, PositionMode mode)
(since QtQuick.Controls 2.5 (Qt 5.12))
詳細説明
Tumbler { model: 5 // ... }
Tumblerは、ユーザーが項目の回転可能な「ホイール」からオプションを選択できるようにします。これは、例えばRadioButton を使うにはオプションが多すぎ、編集可能なSpinBox を使うにはオプションが少なすぎる場合に便利です。キーボードを使う必要がなく、項目数が多いときには両端を折り返すことができるので便利です。
APIは、ListView やPathView のようなビューと似ています。model とdelegate を設定することができ、count とcurrentItem プロパティは、ビューに関する情報への読み取り専用アクセスを提供します。ビューを特定のインデックスに配置するには、positionViewAtIndex()を使用します。
しかし、PathView やListView のようなビューとは異なり、(モデルが空でない場合)常に現在のアイテムが存在します。つまり、count が0 と等しい場合、currentIndex は-1 になります。それ以外の場合は、0 以上になります。
デフォルトでは、モデル内のアイテム数が可視アイテム数より多い限り、Tumblerはwraps 、最上位と最下位に達したとき、つまりcount がvisibleItemCount より大きいとき、 になります:
import QtQuick import QtQuick.Window import QtQuick.Controls Rectangle { width: frame.implicitWidth + 10 height: frame.implicitHeight + 10 FontMetrics { id: fontMetrics } Component { id: delegateComponent Label { text: formatText(Tumbler.tumbler.count, modelData) opacity: 1.0 - Math.abs(Tumbler.displacement) / (Tumbler.tumbler.visibleItemCount / 2) horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter font.pixelSize: fontMetrics.font.pixelSize * 1.25 function formatText(count, modelData) { var data = count === 12 ? modelData + 1 : modelData; return data.toString().length < 2 ? "0" + data : data; } } } Frame { id: frame padding: 0 anchors.centerIn: parent Row { id: row Tumbler { id: hoursTumbler model: 12 delegate: delegateComponent } Tumbler { id: minutesTumbler model: 60 delegate: delegateComponent } Tumbler { id: amPmTumbler model: ["AM", "PM"] delegate: delegateComponent } } } }
タンブラーと 入力コントロールのカスタマイズも参照してください 。
プロパティ・ドキュメント
count : int [read-only]
このプロパティは、モデル内のアイテムの数を保持します。
currentIndex : int
このプロパティは、現在の項目のインデックスを保持する。
このプロパティの値は、count が0 と等しい場合、-1 となる。それ以外の場合は、0 以上となる。
currentItem およびpositionViewAtIndex()も参照 。
currentItem : Item [read-only]
このプロパティは、現在のインデックスの項目を保持する。
currentIndex およびpositionViewAtIndex()も参照のこと 。
delegate : Component
このプロパティは、各アイテムを表示するために使用されるデリゲートを保持します。
Tumbler はデリゲートの所有権を持ちません。
flickDeceleration : int
このプロパティは、フリックが減速する速度を保持する。数値が大きいほど、ユーザーがタッチでフリックするのを止めたときに減速する速度が速くなる。たとえば、0.0001 はほぼ「摩擦なし」で、10000 はかなり「粘着性」を感じます。
wrap (デフォルト)がtrueの場合、デフォルトのflickDecelerationは100 。それ以外の場合は、プラットフォームに依存します。この動作をオーバーライドするには、このプロパティの値を明示的に設定します。デフォルトの動作に戻すには、このプロパティを undefined に設定します。ゼロ以下の値は使用できません。
model : variant
このプロパティは、このタンブラーのデータを提供するモデルを保持する。
moving : bool [since QtQuick.Controls 2.2 (Qt 5.9)]
このプロパティは、ユーザーがタンブラーをドラッグまたはフリックすることによって、タンブラーが現在動いているかどうかを記述します。
このプロパティは QtQuick.Controls 2.2 (Qt 5.9) で導入されました。
visibleItemCount : int
このプロパティは、タンブラーに表示されているアイテムの数を保持する。現在のアイテムは常に垂直中央に配置されるため、奇数でなければなりません。
wrap : bool [since QtQuick.Controls 2.1 (Qt 5.8)]
このプロパティは、タンブラーが上部または下部に到達したときに折り返すかどうかを決定します。
デフォルト値は、count がvisibleItemCount より小さい場合、false です。これは、アイテム数が少ない場合、折り返さないタンブラーを使用する方がシンプルだからです。この動作をオーバーライドするには、このプロパティの値を明示的に設定します。デフォルトの動作に戻すには、このプロパティをundefined に設定します。
このプロパティは、QtQuick.Controls 2.1(Qt 5.8)で導入されました。
Attached Property ドキュメント
Tumbler.displacement : real [read-only]
この付属プロパティは、-visibleItemCount / 2 からvisibleItemCount / 2 までの値を保持し、このアイテムがカレントアイテムになるまでの距離を表します。0 は完全にカレントアイテムです。
例えば、以下のアイテムは、カレントアイテムでないときは40%の不透明度で、カレントアイテムになると100%の不透明度に遷移する:
delegate: Text {
text: modelData
opacity: 0.4 + Math.max(0, 1 - Math.abs(Tumbler.displacement)) * 0.6
}Tumbler.tumbler : Tumbler [read-only]
このアタッチド・プロパティはタンブラーを保持する。このプロパティはタンブラーデリゲートにアタッチすることができる。アイテムがタンブラーデリゲートでない場合、値はnull です。
メソッドのドキュメント
[since QtQuick.Controls 2.5 (Qt 5.12)] void positionViewAtIndex(int index, PositionMode mode)
mode で指定された位置にindex が来るようにビューを配置します。
例えば
positionViewAtIndex(10, Tumbler.Center)
wrap が真(デフォルト)の場合、PathView のpositionViewAtIndex() 関数で利用可能なモードが利用可能であり、そうでない場合、ListView のpositionViewAtIndex() 関数で利用可能なモードが利用可能である。
注意: wrap がtrue のときにTumbler.Beginning を使用すると、間違ったアイテムがビューの最上部に配置されるという既知の制限があります。回避策として、index - 1 を渡してください。
このメソッドは QtQuick.Controls 2.5 (Qt 5.12) で導入されました。
currentIndexも参照してください 。
© 2026 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.