Spec-Zone.ru › Qt 5.15

Тип QML SpinBox

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

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

Control

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

Свойства

  • 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
  • значение : int
  • valueFromText : функция
  • 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.

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

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

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

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

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

См. также validator.

from : int

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

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

[только для чтения] 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.hovered : 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()

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

Примечание: Соответствующий обработчик 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-5.15/qml-qtquick-controls2-spinbox.html

Spec-Zone.ru

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