Spec-Zone.ru › Qt 5.11

Тип QML ComboBox

Обеспечивает функциональность раскрывающегося списка. Подробнее...

Заявление об импорте: import QtQuick.Controls 1.4
С тех пор: Qt 5.1
Наследует:

FocusScope

  • Список всех членов, включая унаследованные члены

Свойства

  • 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

Сигналы

  • accepted()
  • activated(int)

Методы

  • int find(string text)
  • void selectAll()
  • string textAt(int index)

Подробное описание

Добавьте элементы в 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.

Документация по методам

int find(string text)

Находит и возвращает индекс заданного text. Если совпадения нет, возвращается -1. Поиск регистрозависимый.

Этот метод был добавлен в QtQuick.Controls 1.1.

void selectAll()

Выбирает весь editText.

Этот метод был добавлен в QtQuick.Controls 1.1.

string textAt(int index)

Возвращает текст для заданного 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API