Тип 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
- 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 , если текущий текст удовлетворяет валидатору или маске в качестве конечной строки (а не промежуточной).
Это свойство было представлено в 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 : 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.
Документация по методам
Находит и возвращает индекс заданного text. Если совпадения нет, возвращается -1. Поиск регистрозависимый.
Этот метод был добавлен в QtQuick.Controls 1.1.
void selectAll()
Выбирает весь editText.
Этот метод был добавлен в QtQuick.Controls 1.1.
Возвращает текст для заданного 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.13/qml-qtquick-controls-combobox.html