Как использовать QStringView с QML? - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь понять, как / если я могу использовать QStringView в сигнале / слоте, которые вызываются из QML. Например, в приведенном ниже коде я могу использовать QStringView вместо QString?

Q_PROPERTY(QString priority READ priority WRITE setPriority NOTIFY priorityChanged)

Из того, что я читаю из документации, можно использовать любой тип, поддерживаемый QVariant в Q_PROPERTY я могу понять, почему QStringView не поддерживается QVariant, но я ищу способ использовать QStringView с QML вместо передачи QString копий между ними все время.

1 Ответ

1 голос
/ 20 февраля 2020

Поддерживаемые преобразования между типами данных QML и C ++ описаны в этом документе .

Поддерживаемые типы данных можно разделить на четыре категории:

  • Основные c типы данных
  • QObject производные классы (например, QAbstractItemModel)
  • Некоторые списки базовых c
  • Перечисления

Ответ: QStringView не входит ни в одну из этих категорий. Таким образом, невозможно перенести его в QML.

Возможное решение: Можно попытаться создать оболочку на основе QObject вокруг QStringView, которая реализует требуемый интерфейс QML.

...