Spec-Zone.ru › Qt 5.12

Тип QML Tumbler

Поворотное колесо элементов, которые можно выбрать. Подробнее...

Оператор импорта: import QtQuick.Controls 2.5
С тех пор: Qt 5.7
Наследует:

Control

  • Список всех членов, включая унаследованные

Свойства

  • count : int
  • currentIndex : int
  • currentItem : Элемент
  • delegate : Компонент
  • model : variant
  • moving : bool
  • visibleItemCount : int
  • wrap : bool

Присоединенные свойства

  • displacement : real
  • tumbler : Tumbler

Методы

  • void positionViewAtIndex(int index, PositionMode mode)

Подробное описание

Tumbler {
    model: 5
    // ...
}

Tumbler позволяет пользователю выбирать опцию из вращающегося "колеса" элементов. Он полезен в случаях, когда слишком много вариантов для использования, например, RadioButton, и слишком мало вариантов для использования редактируемого SpinBox. Он удобен тем, что не требует использования клавиатуры и циклически заворачивает на каждом конце, когда имеется большое количество элементов.

API похож на представления, такие как ListView и PathView; можно установить model и delegate, а свойства count и currentItem предоставляют доступ для чтения к информации о представлении. Чтобы расположить представление в определенном индексе, используйте positionViewAtIndex().

В отличие от представлений, таких как PathView и ListView, всегда существует текущий элемент (когда модель не пуста). Это означает, что когда count равен 0, currentIndex будет -1. Во всех остальных случаях он будет больше или равен 0.

По умолчанию, Tumbler wrap при достижении верхней и нижней границ, пока в модели имеется больше элементов, чем видимых элементов; то есть, когда count больше, чем visibleItemCount:

import QtQuick 2.12
import QtQuick.Window 2.2
import QtQuick.Controls 2.12

Rectangle {
    width: frame.implicitWidth + 10
    height: frame.implicitHeight + 10

    function formatText(count, modelData) {
        var data = count === 12 ? modelData + 1 : modelData;
        return data.toString().length < 2 ? "0" + data : data;
    }

    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
        }
    }

    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

Это свойство содержит количество элементов в модели.

currentIndex : int

Это свойство содержит индекс текущего элемента.

Значение этого свойства равно -1 когда count равен 0. Во всех остальных случаях оно будет больше или равно 0.

См. также currentItem и positionViewAtIndex().

[только для чтения] currentItem : Item

Это свойство содержит элемент в текущем индексе.

См. также currentIndex и positionViewAtIndex().

delegate : Component

Это свойство содержит делегат, используемый для отображения каждого элемента.

model : variant

Это свойство содержит модель, которая предоставляет данные для этого тумблера.

moving : bool

Это свойство описывает, перемещается ли тумблер в данный момент, из-за перетаскивания или щелчка пользователем.

Это свойство было представлено в QtQuick.Controls 2.2 (Qt 5.9).

visibleItemCount : int

Это свойство содержит количество элементов, видимых в тумблере. Оно должно быть нечетным числом, так как текущий элемент всегда находится в центре вертикально.

wrap : bool

Это свойство определяет, обходит ли тумблер верхнюю или нижнюю границу.

Значение по умолчанию — false когда count меньше visibleItemCount, так как взаимодействие с не-циклическим тумблером проще, когда имеется лишь несколько элементов. Чтобы переопределить это поведение, явно задайте значение этого свойства. Чтобы вернуться к поведению по умолчанию, установите это свойство в undefined.

Это свойство было представлено в QtQuick.Controls 2.1 (Qt 5.8).

Документация по присоединенным свойствам

[только для чтения] Tumbler.displacement : real

Это присоединенное свойство содержит значение от -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

Это присоединенное свойство содержит тумблер. Свойство может быть присоединен к делегату тумблера. Значение — null если элемент не является делегатом тумблера.

Документация по методам

void positionViewAtIndex(int index, PositionMode mode)

Располагает представление таким образом, что index находится в позиции, заданной mode.

Например:

positionViewAtIndex(10, Tumbler.Center)

Если wrap имеет значение true (значение по умолчанию), доступны режимы, доступные для функции PathView's positionViewAtIndex(), в противном случае доступны режимы, доступные для функции ListView's positionViewAtIndex().

Примечание: Существует известное ограничение, заключающееся в том, что использование Tumbler.Beginning, когда wrap имеет значение true приведет к неправильному позиционированию элемента вверху представления. В качестве обходного пути передайте index - 1.

Этот метод был представлен в QtQuick.Controls 2.5 (Qt 5.12).

См. также currentIndex.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qml-qtquick-controls2-tumbler.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API