Уведомления
Очистить все
Делаю проект с использованием Qt, интерфейс на Qml. Возник такой вопрос: есть свой класс, как можно вызвать функцию для объекта этого класса из Qml без создания этого объекта непосредственно в Qml-коде?
То есть объект существует сам по себе в C++ части приложения, нужно вызвать один из его методов из Qml.
Создатель темы Размещено : 28.10.2023 12:56
Делаю проект с использованием Qt, интерфейс на Qml. Возник такой вопрос: есть свой класс, как можно вызвать функцию для объекта этого класса из Qml без создания этого объекта непосредственно в Qml-коде?
То есть объект существует сам по себе в C++ части приложения, нужно вызвать один из его методов из Qml.
Можно так, свой класс, customclass.h:
class CustomClass : public QObject
{
Q_OBJECT
public:
Q_INVOKABLE void methodToInvoke()
{
// Here is the code
}
};
main.cpp:
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQuickView view;
MyCustomClass customClassObject;
view.rootContext()->setContextProperty("customClassObject", &customClassObject);
view.setSource(QUrl::fromLocalFile("main.qml"));
view.show();
return app.exec();
}
И в QML, main.qml:
customClassObject.methodToInvoke();
Размещено : 29.10.2023 11:01
@aveal у меня в main() чуть по-другому:
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
const QUrl url(QStringLiteral("qrc:/qml/main.qml"));
engine.load(url);
Создатель темы Размещено : 29.10.2023 11:37
Размещено : 29.10.2023 11:57