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 와 같은 뷰의 API와 유사합니다. 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.