Spec-Zone.ru › Qt 5.11

Тип QML SpinBox

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

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

Control

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

Свойства

  • displayText : строка
  • down
    • down.pressed : bool
    • down.indicator : Элемент
    • down.hovered : bool
  • editable : bool
  • from : int
  • inputMethodComposing : bool
  • inputMethodHints : флаги
  • stepSize : int
  • textFromValue : функция
  • to : int
  • up
    • up.pressed : bool
    • up.indicator : Элемент
    • up.hovered : bool
  • validator : Validator
  • значение : int
  • valueFromText : функция
  • wrap : bool

Сигналы

  • valueModified()

Методы

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

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

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

По умолчанию SpinBox предоставляет дискретные значения в диапазоне [0-99] с stepSize 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 : строка

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

Значение свойства основано на 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.

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

editable : bool

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

См. также validator.

from : int

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

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

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

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

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

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

inputMethodHints : флаги

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

Значение по умолчанию равно 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 : функция

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

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

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

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

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

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

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

to : int

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

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

up.pressed : bool

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

См. также 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 : int

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

valueFromText : function

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

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

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

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

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

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

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

wrap : bool

Это свойство содержит информацию о том, обёртывается ли спинбокс. Значение по умолчанию — 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/archives/qt-5.11/qml-qtquick-controls2-spinbox.html

Spec-Zone.ru

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