Spec-Zone.ru › Qt 5.12

Тип SpinBox QML

Позволяет пользователю выбирать из набора предопределённых значений. Подробнее...

Заявление об импорте: import QtQuick.Controls 2.5
С момента: Qt 5.7
Наследует:

Control

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

Свойства

  • displayText : строка
  • down
    • down.pressed : bool
    • down.indicator : Item
    • down.hovered : bool
    • down.implicitIndicatorWidth : real
    • down.implicitIndicatorHeight : real
  • editable : bool
  • from : int
  • inputMethodComposing : bool
  • inputMethodHints : flags
  • stepSize : int
  • textFromValue : function
  • to : int
  • up
    • up.pressed : bool
    • up.indicator : Item
    • up.hovered : bool
    • up.implicitIndicatorWidth : real
    • up.implicitIndicatorHeight : real
  • validator : Validator
  • значение : int
  • valueFromText : function
  • wrap : bool

Сигналы

  • valueModified()

Методы

  • void уменьшить()
  • void увеличить()

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

SpinBox позволяет пользователю выбрать целое значение, нажав на индикаторы «вверх» или «вниз», или нажав клавиши со стрелками вверх или вниз на клавиатуре. При необходимости SpinBox также можно сделать редактируемым, чтобы пользователь мог ввести текстовое значение в поле ввода.

По умолчанию SpinBox предоставляет дискретные значения в диапазоне [0-99] с шагом 1.

SpinBox {
    value: 50
}

Пользовательские значения

Несмотря на то, что SpinBox работает с целыми числами, его можно настроить для приёма произвольных входных значений. Следующий фрагмент кода демонстрирует, как можно использовать validator, textFromValue и valueFromText для настройки поведения по умолчанию.

SpinBox {
    from: 0
    to: items.length - 1
    value: 1 // "Medium"

    property var items: ["Small", "Medium", "Large"]

    validator: RegExpValidator {
        regExp: new RegExp("(Small|Medium|Large)", "i")
    }

    textFromValue: function(value) {
        return items[value];
    }

    valueFromText: function(text) {
        for (var i = 0; i < items.length; ++i) {
            if (items[i].toLowerCase().indexOf(text.toLowerCase()) === 0)
                return i
        }
        return sb.value
    }
}

Аналогичным образом, SpinBox можно настроить для приёма чисел с плавающей запятой:

SpinBox {
    id: spinbox
    from: 0
    value: 110
    to: 100 * 100
    stepSize: 100
    anchors.centerIn: parent

    property int decimals: 2
    property real realValue: value / 100

    validator: DoubleValidator {
        bottom: Math.min(spinbox.from, spinbox.to)
        top:  Math.max(spinbox.from, spinbox.to)
    }

    textFromValue: function(value, locale) {
        return Number(value / 100).toLocaleString(locale, 'f', spinbox.decimals)
    }

    valueFromText: function(text, locale) {
        return Number.fromLocaleString(locale, text) * 100
    }
}

См. также Tumbler, Настройка SpinBox и Управление фокусом в Qt Quick Controls 2.

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

[только для чтения] displayText : строка

Это свойство содержит текстовое значение спинбокса.

Значение свойства основано на textFromValue и locale и равно:

var text = spinBox.textFromValue(spinBox.value, spinBox.locale)

Это свойство было добавлено в QtQuick.Controls 2.4 (Qt 5.11).

См. также textFromValue.

down.pressed : bool

Эти свойства содержат элемент индикатора вниз и то, нажат ли он или наведён курсор. Свойство down.hovered было добавлено в QtQuick.Controls 2.1, а свойства down.implicitIndicatorWidth и down.implicitIndicatorHeight были добавлены в QtQuick.Controls 2.5.

См. также decrease().

editable : bool

Это свойство указывает, является ли спинбокс редактируемым. Значение по умолчанию — false.

См. также validator.

from : int

Это свойство содержит начальное значение для диапазона. Значение по умолчанию — 0.

См. также to и значение.

[только для чтения] inputMethodComposing : bool

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

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

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

inputMethodHints : flags

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

Значение по умолчанию — Qt.ImhDigitsOnly.

Значение является побитовым сочетанием флагов или Qt.ImhNone если подсказки не заданы.

Флаги, изменяющие поведение:

  • Qt.ImhHiddenText - Символы должны быть скрыты, как это обычно используется при вводе паролей.
  • Qt.ImhSensitiveData - Введённый текст не должен храниться активным методом ввода в любом постоянном хранилище, таком как предсказательный словарь пользователя.
  • Qt.ImhNoAutoUppercase - Метод ввода не должен пытаться автоматически переключиться на верхний регистр в конце предложения.
  • Qt.ImhPreferNumbers - Числа предпочтительны (но не обязательны).
  • Qt.ImhPreferUppercase - Буквы верхнего регистра предпочтительны (но не обязательны).
  • Qt.ImhPreferLowercase - Буквы нижнего регистра предпочтительны (но не обязательны).
  • Qt.ImhNoPredictiveText - Не использовать предсказательный текст (например, поиск в словаре) во время ввода.
  • Qt.ImhDate - Поле редактирования действует как поле даты.
  • Qt.ImhTime - Поле редактирования действует как поле времени.

Флаги, ограничивающие ввод (исключительные флаги):

  • Qt.ImhDigitsOnly - Разрешены только цифры.
  • Qt.ImhFormattedNumbersOnly - Разрешен только ввод чисел. Это включает десятичную точку и знак минус.
  • Qt.ImhUppercaseOnly - Разрешен только ввод букв верхнего регистра.
  • Qt.ImhLowercaseOnly - Разрешен только ввод букв нижнего регистра.
  • Qt.ImhDialableCharactersOnly - Разрешены только символы, подходящие для набора номера телефона.
  • Qt.ImhEmailCharactersOnly - Разрешены только символы, подходящие для адресов электронной почты.
  • Qt.ImhUrlCharactersOnly - Разрешены только символы, подходящие для URL-адресов.

Маски:

  • Qt.ImhExclusiveInputMask - Эта маска возвращает ненулевое значение, если используется любой из исключительных флагов.

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

stepSize : int

Это свойство содержит шаг. Значение по умолчанию — 1.

См. также increase() и decrease().

textFromValue : function

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

Функцию по умолчанию можно переопределить, чтобы отображать пользовательский текст для данного значения. Это относится как к редактируемым, так и к нередактируемым спинбоксам; например, при использовании кнопок «вверх» и «вниз» или колесика мыши для увеличения и уменьшения значения новое значение преобразуется в отображаемый текст с помощью этой функции.

Подпись обратной функции — string function(value, locale). Функция может иметь один или два аргумента, где первый аргумент — значение, которое нужно преобразовать, а необязательный второй аргумент — локаль, которая должна использоваться для преобразования, если применимо.

По умолчанию реализация выполняет преобразование с помощью Number.toLocaleString():

textFromValue: function(value, locale) { return Number(value).toLocaleString(locale, 'f', 0); }

Примечание: При применении пользовательской textFromValue реализации для изменяемых спинбоксов, необходимо предоставить соответствующую реализацию valueFromText для возможности преобразования пользовательского текста обратно в целое число.

См. также valueFromText, validator и locale.

to : целое

Это свойство содержит конечное значение диапазона. Значение по умолчанию — 99.

См. также from и value.

up.pressed : логическое

Эти свойства содержат элемент индикатора "вверх" и информацию о том, нажат он или наведён курсор. Свойство up.hovered было добавлено в QtQuick.Controls 2.1, а свойства up.implicitIndicatorWidth и up.implicitIndicatorHeight были добавлены в QtQuick.Controls 2.5.

См. также increase().

validator : Validator

Это свойство содержит валидатор входного текста для изменяемых спинбоксов. По умолчанию SpinBox использует IntValidator для принятия целых чисел в качестве входных данных.

SpinBox {
    id: control
    validator: IntValidator {
        locale: control.locale.name
        bottom: Math.min(control.from, control.to)
        top: Math.max(control.from, control.to)
    }
}

См. также editable, textFromValue, valueFromText и locale.

value : целое

Это свойство содержит значение в диапазоне from - to. Значение по умолчанию — 0.

valueFromText : функция

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

Эту функцию нужно переопределять только тогда, когда переопределяется textFromValue для изменяемого спинбокса.

Подпись функции обратного вызова: int function(text, locale). Функция может иметь один или два аргумента, где первый аргумент — текст для преобразования, а необязательный второй аргумент — язык, который следует использовать для преобразования, если это применимо.

По умолчанию преобразование выполняется с помощью Number.fromLocaleString():

valueFromText: function(text, locale) { return Number.fromLocaleString(locale, text); }

Примечание: При применении пользовательской реализации textFromValue для изменяемых спинбоксов, необходимо предоставить соответствующую реализацию valueFromText для возможности преобразования пользовательского текста обратно в целое число.

См. также textFromValue, validator и locale.

wrap : логическое

Это свойство указывает, обёртывается ли спинбокс. Значение по умолчанию — false.

Если wrap равно true, переход за пределы значения to изменяет значение на from и наоборот.

Это свойство было добавлено в QtQuick.Controls 2.3 (Qt 5.10).

Документация сигналов

valueModified()

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

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

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

void decrease()

Уменьшает значение на stepSize, или на 1 если stepSize не определено.

См. также stepSize.

void increase()

Увеличивает значение на stepSize, или на 1 если stepSize не определено.

См. также stepSize.

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

Spec-Zone.ru

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