PDA

View Full Version : دسترسی به توابع و کلاس های تغریف شده در main.cpp از main.qml



ali_72
یک شنبه 20 دی 1394, 10:05 صبح
سلام دوستان

من از کدهای زیر برای بایند داینامیک اطلاعات از main.cpp در main.qml استفاده کردم ولی این خطا رو میده:

خطا:


138296



کد:

#include <QApplication>#include <QQmlApplicationEngine>
#include <QCoreApplication>
#include <QDebug>
#include <QtSerialPort/QtSerialPort>
#include <QtDeclarative/QDeclarativeContext>
#include <QQmlContext>


class ApplicationData : public QObject
{
Q_OBJECT public: Q_INVOKABLE QDateTime getCurrentDateTime() const {
return QDateTime::currentDateTime();
}
};


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


QQmlApplicationEngine engine;


engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
app.setLayoutDirection(Qt::RightToLeft);


ApplicationData myClass;


QQmlContext *context = new QQmlContext(engine.rootContext());
context->setContextProperty("myClass", &myClass);


return app.exec();
}




تو نت خیلی جستجو کردم
همش همین بود

ali_72
یک شنبه 20 دی 1394, 13:30 عصر
سلام
مشکلم حل شد.
کد صحیح:
application data رو تو یه source/class میذاریم و کد main.cpp به صورت زیر اصلاح میشه


#include <QApplication>#include <QQmlApplicationEngine>
#include <QQmlContext>
#include "applicationdata.h"


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


QQmlApplicationEngine engine;
ApplicationData data;
engine.rootContext()->setContextProperty("appData", &data);
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));


return app.exec();
}