Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Отражение луны от Май 01, 2016, 05:46



Название: QQmlExtensionPlugin::baseUrl -> QQuickItem::baseUrl
Отправлено: Отражение луны от Май 01, 2016, 05:46
Добрый день.
Как уже наверное понятно из названия - что-то прям никак не могу понять, как baseUrl из плагина передать непосредственно в регистрируемый мной класс-потомок QQuickItem.
Или как из этого класса-потомка достать объект плагина, к которому он принадлежит, чтобы вызвать этот метод.
Вроде все должно быть очень просто, но не вижу между ними абсолютно никакой связи.


Название: Re: QQmlExtensionPlugin::baseUrl -> QQuickItem::baseUrl
Отправлено: Отражение луны от Май 01, 2016, 17:20
Разобрался, возможно решение немного кривое, но мне оно подошло даже больше.
Код:
void MyPlugin::initializeEngine(QQmlEngine *engine, const char *uri) {
    engine->rootContext()->setContextProperty("myPlugin", this);
}
QString MyPlugin::getBaseUrl() {
    return this->baseUrl().toString();
}
Ну и соотвественно в qml окружении мы можем легко вызвать эту функцию и узнать директорию, из которой был загружен плагин.
Цитировать
myPlugin.getBaseUrl()

Если есть идеи как это можно сделать иначе - будет интересно узнать.