Тип QML ComboBox
Обеспечивает функциональность раскрывающегося списка. Подробнее...
| Заявление об импорте: | import QtQuick.Controls 1.4 |
| С тех пор: | Qt 5.1 |
| Наследует: |
Свойства
- 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
- style : Компонент
- textRole : string
- validator : Validator
Сигналы
Методы
Подробное описание
Добавьте элементы в 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 , если текущий текст удовлетворяет валидатору или маске в качестве конечной строки (а не промежуточной строки).
Это свойство QML было представлено в QtQuick.Controls 1.1.
См. также validator и accepted.
activeFocusOnPress : bool
Это свойство определяет, должен ли combobox получить активный фокус при нажатии. Значение по умолчанию - false.
[только для чтения] count : int
Это свойство содержит количество элементов в комбинации.
Это свойство QML было представлено в QtQuick.Controls 1.1.
currentIndex : int
Индекс текущего выбранного элемента в ComboBox.
Установка currentIndex в -1 сбросит выбор и очистит метку текста. Если editable равно true, вам также может потребоваться вручную очистить editText.
См. также model.
[только для чтения] currentText : string
Текст текущего выбранного элемента в ComboBox.
Примечание: Поскольку currentText зависит от currentIndex, нет способа гарантировать, что currentText будет обновляться всякий раз, когда вызывается обработчик onCurrentIndexChanged.
editText : string
Это свойство задает текст, обрабатываемый пользователем для редактируемой комбинации.
Это свойство QML было представлено в QtQuick.Controls 1.1.
editable : bool
Это свойство указывает, может ли пользователь редактировать комбинацию. Значение по умолчанию - false.
Это свойство QML было представлено в QtQuick.Controls 1.1.
[только для чтения] hovered : bool
Это свойство указывает, находится ли элемент над контролем.
[только для чтения] inputMethodComposing : bool
Это свойство содержит информацию о том, имеет ли редактируемая ComboBox частичный ввод текста от метода ввода.
Пока он составляется, метод ввода может полагаться на события мыши или клавиатуры от ComboBox для редактирования или подтверждения частичного текста. Это свойство может использоваться для определения того, когда следует отключать обработчики событий, которые могут помешать правильной работе метода ввода.
Это свойство QML было представлено в 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 - Эта маска дает ненулевое значение, если используются какие-либо из исключительных флагов.
Это свойство QML было представлено в QtQuick.Controls 1.5.
menu : Компонент
Это свойство содержит редактируемое меню Menu для работы с выделением текста. Установите значение null , если меню не требуется.
Примечание: Меню используется только тогда, когда editable равно true.
Это свойство QML было представлено в QtQuick.Controls 1.3.
model : model
Модель для заполнения ComboBox.
Изменение модели после инициализации сбросит currentIndex до 0.
[только для чтения] pressed : bool
Это свойство содержит информацию о том, нажата ли кнопка.
selectByMouse : bool
Данное свойство определяет, может ли пользователь выбрать текст в редактируемом текстовом поле с помощью мыши.
Значение по умолчанию — true.
Это свойство QML было добавлено в QtQuick.Controls 1.3.
style : Component
Компонент стиля для данного элемента управления.
См. также Типы QML Qt Quick Controls Styles.
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
} Это свойство QML было добавлено в QtQuick.Controls 1.1.
См. также acceptableInput, accepted и editable.
Документация по сигналам
accepted()
Этот сигнал излучается при нажатии клавиш Ввод или Enter на редактируемом раскрывающемся списке. Если подтвержденная строка в настоящее время отсутствует в модели, currentIndex будет установлен в -1, а currentText будет обновлен соответственно.
Примечание: Если для раскрывающегося списка установлен валидатор, сигнал будет излучен только в том случае, если входные данные находятся в приемлемом состоянии.
Соответствующий обработчик — onAccepted.
Этот сигнал QML был добавлен в QtQuick.Controls 1.1.
activated(int index)
Этот сигнал аналогичен сигналу изменения currentIndex, но будет излучаться только в том случае, если индекс раскрывающегося списка был изменен пользователем, а не установлен программно.
index — активированный индекс модели или -1 если новая строка принята.
Соответствующий обработчик — onActivated.
Этот сигнал QML был добавлен в QtQuick.Controls 1.1.
Документация по методам
int find(string text)
Находит и возвращает индекс заданного text. Если совпадение не найдено, возвращается -1. Поиск регистрозависимый.
Этот метод QML был добавлен в QtQuick.Controls 1.1.
void selectAll()
Вызывает выделение всего содержимого editText.
Этот метод QML был добавлен в QtQuick.Controls 1.1.
string textAt(int index)
Возвращает текст для заданного index. Если предоставлен недопустимый индекс, возвращается null.
Этот метод QML был добавлен в QtQuick.Controls 1.1.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qml-qtquick-controls-combobox.html