Тип QML SpinBox
Позволяет пользователю выбирать из набора предопределённых значений. Подробнее...
| Оператор импорта: | import QtQuick.Controls |
| С версии: | Qt 5.7 |
| Наследует: |
Свойства
- displayText : строка
-
down
- down.hovered : bool
- down.implicitIndicatorHeight : вещественное
- down.implicitIndicatorWidth : вещественное
- down.indicator : Элемент
- down.pressed : bool
- editable : bool
- from : int
- inputMethodComposing : bool
- inputMethodHints : флаги
- stepSize : int
- textFromValue : функция
- to : int
-
up
- up.hovered : bool
- up.implicitIndicatorHeight : вещественное
- up.implicitIndicatorWidth : вещественное
- up.indicator : Элемент
- up.pressed : bool
- validator : Validator
- value : int
- valueFromText : функция
- wrap : bool
Сигналы
Методы
Подробное описание
SpinBox позволяет пользователю выбрать целое значение, нажав на кнопки индикаторов вверх или вниз, или нажав клавиши со стрелками вверх или вниз на клавиатуре. Дополнительно, SpinBox может быть также сделан редактируемым, так что пользователь может ввести текстовое значение в поле ввода.
По умолчанию, SpinBox предоставляет дискретные значения в диапазоне [0-99] с stepSize 1.
SpinBox {
value: 50
} Настраиваемые значения
Хотя SpinBox работает с целыми значениями, его можно настроить для принятия произвольных значений. Следующий фрагмент демонстрирует, как validator, textFromValue и valueFromText могут быть использованы для настройки стандартного поведения.
SpinBox {
id: spinBox
from: 0
to: items.length - 1
value: 1 // "Medium"
property var items: ["Small", "Medium", "Large"]
validator: RegularExpressionValidator {
regularExpression: 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 spinBox.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.
Документация по свойствам
[только для чтения, начиная с QtQuick.Controls 2.4 (Qt 5.11)] displayText : строка
Это свойство содержит текстовое значение SpinBox.
Значение свойства основано на textFromValue и locale и равно:
var text = spinBox.textFromValue(spinBox.value, spinBox.locale)
Это свойство было введено в QtQuick.Controls 2.4 (Qt 5.11).
См. также textFromValue.
down.hovered : bool
Эти свойства содержат элемент индикатора вниз и значение, указывает ли он на нажатие или наведение курсора. Свойство down.hovered было введено в QtQuick.Controls 2.1, а свойства down.implicitIndicatorWidth и down.implicitIndicatorHeight были введены в QtQuick.Controls 2.5.
См. также decrease().
editable : bool
Это свойство указывает, можно ли редактировать SpinBox. Значение по умолчанию — false.
См. также validator.
from : int
Это свойство содержит начальное значение диапазона. Значение по умолчанию — 0.
[только для чтения, начиная с QtQuick.Controls 2.2 (Qt 5.9)] inputMethodComposing : bool
Это свойство указывает, содержит ли редактируемый SpinBox частичный ввод текста с помощью метода ввода.
Во время составления текст, возможно, будет полагаться на события мыши или клавиатуры из SpinBox для редактирования или подтверждения частичного текста. Это свойство может использоваться для определения времени отключения обработчиков событий, которые могут помешать правильному функционированию метода ввода.
Это свойство было введено в QtQuick.Controls 2.2 (Qt 5.9).
[начиная с QtQuick.Controls 2.2 (Qt 5.9)] inputMethodHints : флаги
Это свойство предоставляет подсказки методу ввода о ожидаемом содержимом SpinBox и о том, как он должен работать.
Значение по умолчанию — 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 : функция
Это свойство содержит функцию обратного вызова, которая вызывается всякий раз, когда целое значение необходимо преобразовать в отображаемый текст.
Стандартную функцию можно переопределить для отображения пользовательского текста для данного значения. Это относится как к редактируемым, так и к нередактируемым SpinBox; например, при использовании кнопок вверх и вниз или колесика мыши для инкрементирования и декрементирования значения новое значение преобразуется в отображаемый текст с помощью этой функции.
Подпись функции обратного вызова — string function(value, locale). Функция может иметь один или два аргумента, где первый аргумент — значение, которое необходимо преобразовать, а необязательный второй аргумент — язык, который следует использовать для преобразования, если это применимо.
Стандартная реализация выполняет преобразование с использованием Number.toLocaleString():
textFromValue: function(value, locale) { return Number(value).toLocaleString(locale, 'f', 0); } Примечание: При применении пользовательской реализации textFromValue для изменяемых спинбоксов, необходимо предоставить соответствующую реализацию valueFromText для возможности преобразования пользовательского текста обратно в целое число.
См. также valueFromText, validator и locale.
to : целое
Это свойство содержит конечное значение для диапазона. Значение по умолчанию равно 99.
up.hovered : логическое
Эти свойства содержат элемент индикатора вверх и информацию о том, нажат ли он или находится под курсором. Свойство 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.
[с QtQuick.Controls 2.3 (Qt 5.10)] wrap : логическое
Это свойство указывает, обёртывается ли спинбокс. Значение по умолчанию — false.
Если wrap равно true, перешагивание через to изменяет значение на from и наоборот.
Это свойство было введено в QtQuick.Controls 2.3 (Qt 5.10).
Документация сигналов
[since QtQuick.Controls 2.2 (Qt 5.9)] valueModified()
Этот сигнал излучается, когда пользователь интерактивно изменил значение спинбокса с помощью касания, мыши, колеса прокрутки или клавиш.
Примечание: Соответствующий обработчик — onValueModified.
Этот сигнал был введён в 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-6.2/qml-qtquick-controls2-spinbox.html