Тип 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/archives/qt-5.11/qml-qtquick-controls-combobox.html