首页 > 解决方案 > 如何将 QStringView 与 QML 一起使用?

问题描述

我试图了解如何/是否可以QStringView在从 QML 调用的信号/插槽中使用。例如,在下面的代码中,我可以使用QStringView代替QString吗?

Q_PROPERTY(QString priority READ priority WRITE setPriority NOTIFY priorityChanged)

从我从文档中阅读的内容来看,任何支持的类型QVariant都可以在 a 中使用Q_PROPERTY,我可以理解为什么QStringViewQVariant 不支持但我正在寻找一种与 QML 一起使用的方法,而不是在两者之间QStringView传递副本QString时间。

标签: stringqtqt5qstring

解决方案


本文档描述了 QML 和 C++ 数据类型之间支持的转换。

支持的数据类型可以分为四类:

  • 基本数据类型
  • QObject派生类(例如QAbstractItemModel
  • 一些基本清单
  • 枚举

答:QStringView不属于这些类别中的任何一个。因此,不可能将其转移到 QML。

可能的解决方法:您可以尝试创建一个QObject基于 的包装器QStringView,它实现了所需的 QML 接口。


推荐阅读