Я поставил ObjectName к классу в основных и хочу получить доступ к этому объекту из другого класса:Доступ к функции члена с помощью QQuickWindow
main.cpp
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine;
ImageProvider *imageProvider = new ImageProvider(&engine,QQmlImageProviderBase::Image,0);
PageBuffer p;
p.setObjectName("Object");
engine.rootContext()->setContextProperty("p",&p);
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
engine.addImageProvider("images", imageProvider);
return app.exec();
}
Класса, где я пытаюсь получить доступ PageBuffer р от:
QImage ImageProvider ::requestImage(const QString &id, QSize *size, const QSize &requestedSize)
{
QQuickWindow *window = qobject_cast<QQuickWindow*>(m_engine->rootObjects()[0]);
PageBuffer *p = window->findChild<PageBuffer *>("Object");
cout<<p->current_box; //error at runtime
QImage e;
e.load("Pic4.jpg");
return e;
}
Но я не могу показаться, чтобы получить доступ к любому члену объекта PageBuffer, возможно, из-за указатели, как может я могу получить доступ к функции из объекта р?
Является 'p' на самом деле действительный указатель, а не нуль? – Mitch
Да, это NULL, я только что проверил, значит, я хочу получить правильный объект из QQuickWindow – Javeria
Я также проверил, что p-экземпляр не является дочерним, поскольку я напечатал все имена объектов каждого дочернего элемента в QQuickWindow, который не показывает указанный который я установил в основной функции для экземпляра p – Javeria