Тип 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
Это свойство указывает, должен ли раскрывающийся список получить активный фокус при нажатии. Значение по умолчанию равно 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. При установке валидатора текстовое поле будет принимать только тот ввод, который оставляет свойство text в промежуточном состоянии. Соответствующий сигнал будет отправлен только в том случае, если текст находится в приемлемом состоянии при нажатии 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()
Этот сигнал излучается при нажатии клавиш Return или Enter на редактируемом раскрывающемся списке. Если подтвержденная строка в данный момент отсутствует в модели, currentIndex будет установлен в -1, и currentText будет соответствующим образом обновлен.
Примечание: Если для combobox установлен валидатор, сигнал будет излучен только если ввод находится в приемлемом состоянии.
Соответствующий обработчик — 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)
Возвращает текст для заданного индекса. Если указан некорректный индекс, возвращается null
Этот метод QML был введен в QtQuick.Controls 1.1.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qml-qtquick-controls-combobox.html