Spec-Zone.ru › Qt 5.15

Тип 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 index)

Методы

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

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

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

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

целое find(строка text)

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

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

void selectAll()

Выделяет весь текст в editText.

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

строка textAt(целое 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/qt-5.15/qml-qtquick-controls-combobox.html

Spec-Zone.ru

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