Добрый день ребята. Не подскажите, пожалуйста, как мне правильно обработать в файле qml результат функции с++, которая возвращает QHash ? У меня есть следующий класс:
C++ (Qt)
#include <QDeclarativeView>
#include <QVariant>
#include <QHash>
class settingsGrid : public QDeclarativeView
{
Q_OBJECT
public:
settingsGrid();
~settingsGrid();
public:
Q_INVOKABLE void Quit();
Q_INVOKABLE QHash<QString,QVariant> Test();
private:
void Init();
private:
QString m_ContentPath;
};
C++ (Qt)
#include "settingsgrid.h"
#include <QtGui>
#include <QDeclarativeContext>
settingsGrid::settingsGrid()
{
Init();
}
settingsGrid::~settingsGrid(){
}
void settingsGrid::Init()
{
QString m_ContentPath = "../QML/viewer/main/settingsGrid";
setFocusPolicy(Qt::StrongFocus);
// Изменять размеры QML объекта под размеры окна
// Возможно делать и наоборот,
// передавая QDeclarativeView::SizeViewToRootObject
setResizeMode(QDeclarativeView::SizeRootObjectToView);
rootContext()->setContextProperty("window", this);
// Загрузить QML файл
setSource(QUrl::fromLocalFile(m_ContentPath + "/settingsGrid.qml"));
// Добавим объект window, который будет ссылкой
// на главное окно в пространство QML
}
void settingsGrid::Quit()
{
QApplication::quit();
}
QHash<QString,QVariant> settingsGrid::Test(){
QHash<QString,QVariant> map;
map["desktop1"] = "23";
map["desktop2"] = "25";
return map;
}
в файле settingsGrid.qml :
Item{
id: desktopSet
property variant items
Component.onCompleted:{ items = window.Test(); console.log(items) }
}
мне никак не удается вывести или превратить в массив результат который мне возвращает window.Test(); Подскажите, как справиться с проблемой?