Spec-Zone.ru › Qt 5.12

Тип ComboBox QML

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

Заявление об импорте: 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 с элементом combo box.

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)
}

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

В следующем примере показано, как добавить содержимое в редактируемый элемент combo box, реагируя на сигнал 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 если элемент combo box содержит допустимый текст в поле редактируемого текста.

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

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

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

activeFocusOnPress : bool

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

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

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

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

currentIndex : int

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

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

См. также model.

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

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

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

editText : string

Это свойство задаёт текст, обрабатываемый пользователем для редактируемого элемента combo box.

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

editable : bool

Это свойство содержит значение, определяющее, можно ли редактировать элемент combo box пользователем. Значение по умолчанию равно false.

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

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

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

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

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

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

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

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

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

Значение является побитовой комбинацией флагов или 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 : Компонент

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

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

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

model : модель

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

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

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

Это свойство содержит значение, показывающее, нажата ли кнопка.

selectByMouse : bool

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

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

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

textRole : string

Роль модели, используемая для заполнения 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 будет обновлён соответственно.

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

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

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

activated(int = index)

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

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

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

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

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

int find(string text)

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

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

void selectAll()

Выбирает весь editText.

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

string 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.12/qml-qtquick-controls-combobox.html

Spec-Zone.ru

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