Новичку QML, нуждающемуся в некоторой помощи в подключении бэкэнда C ++ к интерфейсу QML - PullRequest
1 голос
/ 04 февраля 2012

У меня есть код на C ++ для сохранения и извлечения данных из файла XML.У меня есть некоторые формы, встроенные в QML, которые я хотел бы подключить таким образом, чтобы при вводе данных в мой QML обработка выполнялась в C ++, а поиск продуктов осуществлялся через форму QML, обрабатывался в C ++ и списке продуктов.элементы возвращаются в QML для отображения.

class ProcessRequests : public QObject
{
    Q_OBJECT
    Q_PROPERTY(string username READ username WRITE username)
    Q_PROPERTY(string useremail READ useremail WRITE useremail)
    Q_PROPERTY(string usercomplaint READ usercomplaint WRITE usercomplaint)


    public:

    ProcessRequests()
    {}
    ~ProcessRequests(){}

    Q_INVOKABLE void SubmitComplaint(){
     //TODO: Add Xml code to save the property values to file 

    }

};

Ответы [ 2 ]

2 голосов
/ 04 февраля 2012

Я думаю, что ваша проблема заключается во взаимодействии между кодом QML и C ++, вы можете сделать это с помощью следующего кода:

//Product.cpp
QmlApplicationViewer viewer;

QDeclarativeEngine *engine = viewer.engine();
QDeclarativeContext *context = engine->rootContext();

context->setContextProperty("Product", this);

//Your QML File
Product.YourFunction(args);
2 голосов
/ 04 февраля 2012

Тема довольно обширная, вам лучше взглянуть на документы, они достаточно понятны, и здесь также должно быть какое-то руководство. Это хорошая отправная точка: привязки QML в C ++ .

...