Задать вопрос
Benstein
@Benstein
Software and Game Development Engineer.

Связка C++ и QML?

Есть сигнал в одном файле QML, он должен взаимодействовать с C++ частью, но плюсы не находят этот сигнал, т. к. сигнал должен быть виден в main.qml. Нужно короче чтобы я мог нормально соединить сигнал из QML (не main) файла со слотом из C++. Вопрос: как это правильно сделать?
  • Вопрос задан
  • 612 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@Danil2004
Пишу на C++, использую QT (Учусь)
int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    qmlRegisterType<Calc>("com.company.calc", 1, 0, "MyCalc");
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;
    return app.exec();
}


Далее в qml файле пишем import и имя первого параметра:
import com.company.calc 1.0
// и имя элемента будет равно третьему параметру
    MyCalc {
        id: myCalcM
    }

И класс который подключайте должен иметь функции объявленные в Q_PROPORETY или функции Q_INVOKABLE .
Q_PROPERTY(QString str READ string WRITE setString)
    Q_PROPERTY(double getResult READ StartAnalize_GetResult)

И в функция JS выглядит примерно так:
function getResult()
{
    myCalcM.str = allStr()
    return myCalcM.getResult;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Zifix
@Zifix Куратор тега Qt
Barbatum
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы