Spec-Zone.ru › Qt 6.0

Тип SpinBox QML

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

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

Control

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

Свойства

  • displayText : строка
  • down
    • down.hovered : логическое
    • down.implicitIndicatorHeight : вещественное
    • down.implicitIndicatorWidth : вещественное
    • down.indicator : Элемент
    • down.pressed : логическое
  • editable : логическое
  • from : целое
  • inputMethodComposing : логическое
  • inputMethodHints : флаги
  • stepSize : целое
  • textFromValue : функция
  • to : целое
  • up
    • up.hovered : логическое
    • up.implicitIndicatorHeight : вещественное
    • up.implicitIndicatorWidth : вещественное
    • up.indicator : Элемент
    • up.pressed : логическое
  • validator : Валидатор
  • value : целое
  • valueFromText : функция
  • wrap : логическое

Сигналы

  • valueModified()

Методы

  • void decrease()
  • void increase()

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

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: 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 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.

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

[только для чтения, начиная с 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 : логическое

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

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

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

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

См. также validator.

from : целое

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

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

[только для чтения, начиная с QtQuick.Controls 2.2 (Qt 5.9)] inputMethodComposing : логическое

Это свойство содержит значение, указывающее, имеет ли редактируемый 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 : целое

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

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

textFromValue : функция

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

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

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

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

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

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

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

to : целое число

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

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

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.0/qml-qtquick-controls2-spinbox.html

Spec-Zone.ru

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