TypeError: Property 'printText' of object AppCore(0x268510a3e60) is not a function

(Буквально вчера начал разбираться в QML & PySide6)
Я пытаюсь перенести объект core класса CoreApp в qml-файл через context.setContextProperty("appCore", core), какая-то информация о нем всё-же уходит, но точно не то, что требуется

Код:

main.py:

import os
from pathlib import Path
import sys

from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngine

from AppCore import AppCore


if __name__ == "__main__":
    app = QGuiApplication(sys.argv)
    engine = QQmlApplicationEngine()
    context = engine.rootContext()
    core = AppCore()
    context.setContextProperty("appCore", core)
    engine.load(os.fspath(Path(__file__).resolve().parent / "main.qml"))
    if not engine.rootObjects():
        sys.exit(-1)
    sys.exit(app.exec())

AppCore.py:

from PySide6 import QtCore


class AppCore(QtCore.QObject):

    def __init__(self, parent=None):
        super().__init__(parent)

    def printText(self, text: str):
        print(text)

кусок из main.qml:

XButton {
    id: b1
    text: "Button"
    onClick: {
        appCore.printText("qwe")
    }
}

На выходе получаю следующее:

file:/ ... main.qml: TypeError: Property 'printText' of object AppCore(0x2a5f5ee7520) is not a function

Итого класс вроде как есть, но содержимого в нем не наблюдается
Если это чем-то поможет, console.log(JSON.stringify(appCore)) возвращает {"objectName":""}
(Пробовал включить дебаг qml, но так и не смог разобраться в конфигурации, чтобы он ожил)


Ответы (0 шт):