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, но так и не смог разобраться в конфигурации, чтобы он ожил)