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 以上になります。
デフォルトでは、モデル内のアイテム数が表示されているアイテム数よりも多い場合、つまりcount がvisibleItemCount より大きい場合、Tumbler は上端および下端に到達した際にwraps を行います:
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
}
}
}
}「Tumblerおよび入力コントロールのカスタマイズ」も参照してください 。
プロパティのドキュメント
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 に設定してください。0 以下の値は使用できません。
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) で導入されました。
添付プロパティのドキュメント
Tumbler.displacement : real [read-only attached]
このアタッチされたプロパティは、-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 attached]
この添付プロパティはタンブラーを保持します。このプロパティは、タンブラーデリゲートに添付することができます。項目がタンブラーデリゲートでない場合、値はnull となります。
メソッドのドキュメント
[since QtQuick.Controls 2.5 (Qt 5.12)] void positionViewAtIndex(int index, PositionMode mode)
ビューを、index がmode で指定された位置に来るように配置します。
例:
positionViewAtIndex(10, Tumbler.Center)wrap がtrue(デフォルト)の場合、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.