In docs http://doc.qt.io/qt-5/qtqml-cppintegration-data.html mentioned:

"Certain C++ sequence types are supported transparently in QML as JavaScript 
Array types.
In particular, QML currently supports:
   QList<int>
   QList<qreal>
   QList<bool>
   QList<QString> and QStringList
   QList<QUrl>
Other sequence types are not supported transparently, and instead an instance of any 
other sequence type will be passed between QML and C++ as an opaque 
QVariantList."

Looks like that "opaque conversion" doesn't work:

   class MyData : public QObject {
       Q_OBJECT
       Q_PROPERTY(QList<QGeoCoordinate> path READ path WRITE setPath NOTIFY 
pathChanged)
   public:
       QList<QGeoCoordinate> path() {
                return _path;
       }
   ...

MyData object filled with some data and exposed as context property to QML. At 
QML i imported QtPositioning, so QGeoCoordinate refers to coordinate QML basic 
type, but
   console.log(myData.path) prints QVariant(QList<QGeoCoordinate>)
   console.log(myData.path) prints undefined
- there is no sequence, no length.

Is it possible to expose QList<Type> sequence to QML, where Type known by meta 
object system and refers to QML basic type provided by an QtQuick module?
I know that i can expose C++ property of type QVariantList , but what is that 
opaque conversion mentioned in docs.

Maxim

Максим Бесчеревных.
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to