Тип QML SpinBox
Позволяет пользователю выбирать из набора предопределенных значений. Подробнее...
| Заявление импорта: | import QtQuick.Controls 2.5 |
| С тех пор: | Qt 5.7 |
| Наследует: |
Свойства
- displayText : строка
-
down
- down.pressed : логическое
- down.indicator : Элемент
- down.hovered : логическое
- down.implicitIndicatorWidth : вещественное
- down.implicitIndicatorHeight : вещественное
- editable : логическое
- from : целое число
- inputMethodComposing : логическое
- inputMethodHints : флаги
- stepSize : целое число
- textFromValue : функция
- to : целое число
-
up
- up.pressed : логическое
- up.indicator : Элемент
- up.hovered : логическое
- up.implicitIndicatorWidth : вещественное
- up.implicitIndicatorHeight : вещественное
- validator : Validator
- значение : целое число
- valueFromText : функция
- wrap : логическое
Сигналы
Методы
Подробное описание
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 : логическое
Эти свойства содержат элемент индикатора вниз и то, нажата ли он или находится под курсором. Свойство down.hovered было добавлено в QtQuick.Controls 2.1, а свойства down.implicitIndicatorWidth и down.implicitIndicatorHeight были добавлены в QtQuick.Controls 2.5.
См. также decrease().
editable : логическое
Это свойство определяет, редактируемым ли является spinbox. Значение по умолчанию равно false.
См. также validator.
from : целое число
Это свойство содержит начальное значение для диапазона. Значение по умолчанию равно 0.
[только для чтения] inputMethodComposing : логическое
Это свойство определяет, содержит ли редактируемый spin box частичный ввод текста от метода ввода.
Во время составления текст может зависеть от щелчков мышью или нажатий клавиш в spin box для редактирования или подтверждения частичного текста. С помощью этого свойства можно определить, когда следует отключить обработчики событий, которые могут помешать правильно работать методу ввода.
Это свойство было добавлено в QtQuick.Controls 2.2 (Qt 5.9).
inputMethodHints : флаги
Это свойство предоставляет подсказки методу ввода относительно ожидаемого содержимого spin box и того, как он должен работать.
Значение по умолчанию равно 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 : целое число
Это свойство содержит шаг. Значение по умолчанию равно 1.
См. также increase() и decrease().
textFromValue : функция
Это свойство содержит функцию обратного вызова, которая вызывается всякий раз, когда целое значение необходимо преобразовать в текст для отображения.
Функция по умолчанию может быть переопределена для отображения пользовательского текста для заданного значения. Это относится как к редактируемым, так и к нередактируемым spinbox; например, при использовании кнопок «вверх» и «вниз» или колесика мыши для инкремента и декремента значения новое значение преобразуется в текст для отображения с помощью этой функции.
Подпись функции обратного вызова: string function(value, locale). Функция может иметь один или два аргумента, где первый аргумент — значение, которое нужно преобразовать, а необязательный второй аргумент — локаль, которая должна быть использована для преобразования, если это применимо.
По умолчанию реализация выполняет преобразование с помощью Number.toLocaleString():
textFromValue: function(value, locale) { return Number(value).toLocaleString(locale, 'f', 0); } Примечание: При применении пользовательской реализации для изменяемых спинбоксов, необходимо предоставить соответствующую реализацию valueFromText для возможности преобразования пользовательского текста обратно в целое число.
См. также valueFromText, validator и locale.
to : int
Это свойство содержит конечное значение диапазона. Значение по умолчанию — 99.
up.pressed : bool
Эти свойства содержат элемент индикатора «вверх» и информацию о том, нажат ли он или наведён курсор. Свойство 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 : 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/qt-5.13/qml-qtquick-controls2-spinbox.html