Тип ComboBox QML
Обеспечивает функциональность раскрывающегося списка. Подробнее...
| Заявление об импорте: | 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 с элементом combo box.
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)
} Вы можете сделать элемент combo box редактируемым, установив свойство editable. Редактируемый элемент combo box будет автоматически дополнять текст на основе доступных данных в модели.
В следующем примере показано, как добавить содержимое в редактируемый элемент combo box, реагируя на сигнал 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 если элемент combo box содержит допустимый текст в поле редактируемого текста.
Если был задан валидатор, это свойство вернёт true если текущий текст удовлетворяет валидатору или маске в виде окончательной строки (не как промежуточной строки).
Это свойство было введено в QtQuick.Controls 1.1.
См. также validator и accepted.
activeFocusOnPress : bool
Это свойство указывает, должен ли элемент combo box получить активный фокус при нажатии. Значение по умолчанию равно false.
[только для чтения] count : int
Это свойство содержит количество элементов в элементе combo box.
Это свойство было введено в QtQuick.Controls 1.1.
currentIndex : int
Индекс текущего выбранного элемента в элементе ComboBox.
Установление currentIndex в -1 сбросит выбор и очистит метку текста. Если editable равно true, вам также может потребоваться вручную очистить editText.
См. также model.
[только для чтения] currentText : string
Текст текущего выбранного элемента в элементе ComboBox.
Примечание: Поскольку currentText зависит от currentIndex, нет способа гарантировать, что currentText будет обновлён всякий раз, когда вызывается обработчик onCurrentIndexChanged.
editText : string
Это свойство задаёт текст, обрабатываемый пользователем для редактируемого элемента combo box.
Это свойство было введено в QtQuick.Controls 1.1.
editable : bool
Это свойство содержит значение, определяющее, можно ли редактировать элемент combo box пользователем. Значение по умолчанию равно false.
Это свойство было введено в QtQuick.Controls 1.1.
[только для чтения] hovered : bool
Это свойство указывает, находится ли указатель мыши над элементом управления.
[только для чтения] inputMethodComposing : bool
Это свойство содержит значение, показывающее, имеет ли редактируемый элемент ComboBox частичный ввод текста от метода ввода.
В то время как он выполняет композицию, метод ввода может полагаться на события мыши или клавиш от ComboBox для редактирования или подтверждения частичного текста. Это свойство может использоваться для определения момента, когда следует отключать обработчики событий, которые могут помешать правильному функционированию метода ввода.
Это свойство было введено в QtQuick.Controls 1.3.
inputMethodHints : перечисление
Предоставляет подсказки методу ввода о ожидаемом содержимом элемента combo box и о том, как он должен работать.
Значение является побитовой комбинацией флагов или 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 : Компонент
Это свойство содержит редактируемое Меню для работы с выделением текста. Установите его в 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.12/qml-qtquick-controls-combobox.html