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