Тип 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 : строка
Роль модели, используемая для заполнения 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.
Документация по методам
Находит и возвращает индекс заданного 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.14/qml-qtquick-controls-combobox.html