2015-09-29 2 views
-1

Я обновил свой QtCreator до 5.5 и создал новый проект, в реализации я не получал значения QList в QML (от вызова сигнала):Как повторить QVariant?

Класс:

... 

int main(int argc, char *argv[]) 
{ 

    QApplication application(argc, argv); 

    const QString mainQmlApp = QStringLiteral("qrc:///Exemplo.qml"); 
    QQuickView view; 

    qmlRegisterType<ExemploController>("org.qtproject.example", 1, 0, "ExemploController"); 

    view.setSource(QUrl(mainQmlApp)); 
    view.setResizeMode(QQuickView::SizeRootObjectToView); 

    QObject::connect(view.engine(), SIGNAL(quit()), qApp, SLOT(quit())); 
    view.setGeometry(QRect(100, 100, 400, 400)); 
    view.show(); 

    return application.exec(); 
} 

Контроллер:

файл

Заголовок:

... 
class ExemploController : public QWidget 
{ 
    Q_OBJECT 
public: 
    explicit ExemploController(QWidget *parent = 0); 
    Q_INVOKABLE void getMatrix(); 

signals: 
    void receiveMatrix(QList <QList <double> > matrix); 

public slots: 
}; 

Реализация:

... 
QList <QList <double> > net; 
for(int i = 0; i < 6; i++){ 
    QList<double> colorMatrix; 
    colorMatrix << 1 << 2 << 1 << 2 << 2 << 2; 
    net << colorMatrix; 
} 
emit receiveMatrix(net); 
... 

И .. в QML:

... 
ExemploController { 
    id: exemplo 
    onReceiveMatrix: { 
     console.log(matrix+" "+matrix.length); //this returns 'qml: QVariant(QList<QList<double> >) undefined' 
    } 
} 
... 

Как я могу получить эти значения?

ответ

Смежные вопросы