Spec-Zone.ru › Qt 6.1

Тип SpinBox QML

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

Заявление об импорте: import QtQuick.Controls 2.1
С тех пор: 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 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 : bool

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

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

editable : bool

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

См. также validator.

from : int

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

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

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

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

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

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

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

[since QtQuick.Controls 2.3 (Qt 5.10)] wrap : bool

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

Spec-Zone.ru

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