LINUX.ORG.RU

TypeError: Property 'blablabla' of object BlaBla(0x123456789) is not a function

 , ,


0

1

Тыкаю палочкой в QML. Вся логика у меня реализована на плюсах, так что от QML требуется лишь GUI.
qmlRegisterType в main.cpp сделал.
Спецкласс, наследованный от QObject сделал.
К нужному методу Q_INVOKABLE дописал.
В *.qml import сделал.

Вызываю так:

    Button
    {
        id: buttonExit
        x: 178
        y: 100
        text: qsTr("Exit")
        onClicked: backend.exitProgram()
    }


Т.е. сам класс, вроде бы, проимпорчен, раз уж ругается не на него, а на метод.
В какую сторону покопать?
Ну или дайте ссылку на ОЧЕНЬ КРАТКУЮ статью с примером кода.

Deleted

Очевидно, что ты не создал объект backend. Т.е. если создаешь экземпляр своего класса в qml как тут, надо где-то в qml объявить BlaBla { id: backend }.

Но вангую, тебе надо создать экземпляр в плюсах и сделать http://doc.qt.io/qt-5/qqmlcontext.html#setContextProperty у того, что вернёт rootContext() твоего QQmlEngine

fluorite ★★★★★
()
Последнее исправление: fluorite (всего исправлений: 1)
Ответ на: комментарий от Deleted

Ну давай без кода гадать. Есть проперти с таким же именем (exitProgram)? Забыл скобочки в вызове метода?

fluorite ★★★★★
()

В контекст засунул? Что-то вроде:

QQuickView view;
Backend backend;
QQmlContext* ctxt = view.rootContext();
ctxt->setContextProperty("backend", &backend);

iamweasel
()
Ответ на: комментарий от iamweasel

Хм, подобного не писал. Проведу эксперимент когда руки дойдут. Спасибо за наводку.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.