Spec-Zone.ru › Qt 5.14

Тип QML ComboBox

Предоставляет функциональность раскрывающегося списка. Подробнее...

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

FocusScope

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

Свойства

  • acceptableInput : bool
  • activeFocusOnPress : bool
  • count : int
  • currentIndex : int
  • currentText : string
  • editText : string
  • editable : bool
  • hovered : bool
  • inputMethodComposing : bool
  • inputMethodHints : перечисление
  • menu : Компонент
  • model : модель
  • pressed : bool
  • selectByMouse : bool
  • textRole : string
  • validator : Validator

Сигналы

  • accepted()
  • activated(int)

Методы

  • int find(string text)
  • void selectAll()
  • string textAt(int index)

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

Добавьте элементы в ComboBox, назначив ему ListModel или список строк свойству model.

ComboBox {
    width: 200
    model: [ "Banana", "Apple", "Coconut" ]
}

В этом примере демонстрируется использование ListModel с комбобоксом.

ComboBox {
    currentIndex: 2
    model: ListModel {
        id: cbItems
        ListElement { text: "Banana"; color: "Yellow" }
        ListElement { text: "Apple"; color: "Green" }
        ListElement { text: "Coconut"; color: "Brown" }
    }
    width: 200
    onCurrentIndexChanged: console.debug(cbItems.get(currentIndex).text + ", " + cbItems.get(currentIndex).color)
}

Вы можете сделать комбобокс редактируемым, установив свойство editable. Редактируемый комбобокс будет автоматически завершать ввод текста на основе доступных значений в модели.

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

ComboBox {
    editable: true
    model: ListModel {
        id: model
        ListElement { text: "Banana"; color: "Yellow" }
        ListElement { text: "Apple"; color: "Green" }
        ListElement { text: "Coconut"; color: "Brown" }
    }
    onAccepted: {
        if (find(currentText) === -1) {
            model.append({text: editText})
            currentIndex = find(editText)
        }
    }
}

Вы можете создать пользовательский вид для ComboBox, назначив ComboBoxStyle.

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

[только для чтения] acceptableInput : bool

Возвращает true если комбобокс содержит допустимый текст в поле редактирования.

Если был задан валидатор, это свойство вернет true если текущий текст удовлетворяет валидатору или маске как окончательная строка (а не как промежуточная строка).

Это свойство было добавлено в QtQuick.Controls 1.1.

См. также validator и accepted.

activeFocusOnPress : bool

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

[только для чтения] count : int

Это свойство содержит количество элементов в комбобоксе.

Это свойство было добавлено в QtQuick.Controls 1.1.

currentIndex : int

Индекс текущего выбранного элемента в ComboBox.

Установка currentIndex в -1 сбросит выбор и очистит метку текста. Если editable имеет значение true, вам также может потребоваться вручную очистить editText.

См. также model.

[только для чтения] currentText : string

Текст текущего выбранного элемента в ComboBox.

Примечание: Так как currentText зависит от currentIndex, нет способа гарантировать, что currentText будет обновляться всякий раз, когда вызывается обработчик onCurrentIndexChanged.

editText : string

Это свойство задаёт текст, редактируемый пользователем в редактируемом комбобоксе.

Это свойство было добавлено в QtQuick.Controls 1.1.

editable : bool

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

Это свойство было добавлено в QtQuick.Controls 1.1.

[только для чтения] hovered : bool

Это свойство указывает, находится ли указатель мыши над элементом управления.

[только для чтения] inputMethodComposing : bool

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

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

Это свойство было добавлено в QtQuick.Controls 1.3.

inputMethodHints : перечисление

Предоставляет подсказки методу ввода о предполагаемом содержании комбобокса и о том, как он должен работать.

Значение является побитовым сочетанием флагов или 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 1.5.

menu : Компонент

Это свойство содержит меню редактирования Menu для работы с выбором текста. Установите его в null если меню не нужно.

Примечание: Меню используется только при editable имеющем значение true

Это свойство было добавлено в QtQuick.Controls 1.3.

model : модель

Модель для заполнения ComboBox.

Изменение модели после инициализации сбросит currentIndex на 0.

[только для чтения] pressed : bool

Это свойство указывает, нажата ли кнопка.

selectByMouse : bool

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

Значение по умолчанию равно true.

Это свойство было добавлено в QtQuick.Controls 1.3.

textRole : строка

Роль модели, используемая для заполнения ComboBox.

validator : Validator

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

В настоящее время поддерживаются валидаторы IntValidator, DoubleValidator и RegExpValidator. Ниже приведен пример использования валидаторов, позволяющий вводить целые числа от 11 до 31 в текстовое поле:

Примечание: Это свойство применяется только когда editable равно true

import QtQuick 2.2
import QtQuick.Controls 1.2

ComboBox {
    editable: true
    model: 10
    validator: IntValidator {bottom: 0; top: 10;}
    focus: true
}

Это свойство было добавлено в QtQuick.Controls 1.1.

См. также acceptableInput, accepted и editable.

Документация по сигналам

accepted()

Этот сигнал испускается при нажатии клавиши Return или Enter на редактируемом комбинированном поле. Если подтвержденная строка отсутствует в модели, currentIndex будет установлен в -1, и currentText будет обновлен соответствующим образом.

Примечание: Если для combobox установлен validator, сигнал будет испущен только в том случае, если входные данные находятся в приемлемом состоянии.

Соответствующий обработчик — onAccepted.

Этот сигнал был добавлен в QtQuick.Controls 1.1.

activated(int = index)

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

index — активированный индекс модели или -1 в случае принятия новой строки.

Соответствующий обработчик — onActivated.

Этот сигнал был добавлен в QtQuick.Controls 1.1.

Документация по методам

int find(строка text)

Находит и возвращает индекс заданного text. Если совпадения не найдено, возвращается -1. Поиск регистрозависимый.

Этот метод был добавлен в QtQuick.Controls 1.1.

void selectAll()

Вызывает выделение всего содержимого editText.

Этот метод был добавлен в QtQuick.Controls 1.1.

строка textAt(int index)

Возвращает текст для данного index. Если предоставлен некорректный индекс, возвращается null

Этот метод был добавлен в QtQuick.Controls 1.1.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qml-qtquick-controls-combobox.html

Spec-Zone.ru

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