Как выставить структуры C ++ для вычислений в Qml

У меня следующая проблема.

Я разрабатываю модель на C ++ и View в Qml, соединяя их через контроллеры. В моей модели я выполняю несколько расчетов. Я также предлагаю пользователям моего приложения возможность создавать собственные обработчики событий, написанные на qml. Теперь я натолкнулся на точку, где я решил использовать нотацию с фиксированной точкой и написал соответствующий класс C ++. Теперь я хочу предложить класс FixedPoint - включая все его операторы - разработчикам, которые решили расширить мое приложение в Qml. До сих пор я предлагал все данные как QProperties, что требуется в соответствии с рекомендациями по кодированию. Но я открыт для других решений, чтобы обсудить их в моей команде. Ясно, что фиксированная точка - это не тождество, а алгоритмы полагаются на возможность ее копирования, что недопустимо при наследовании от QObject.

Таким образом, возникает вопрос: как я могу представить класс / структуру c ++ для QML, который НЕ является личностью?

Пример в коде:

struct FixedPoint
{
    FixedPoint(FixedPoint&);
    FixedPoint& operator=(FixedPoint&);
    ...
    int mantissa;
    int exponent;
}

Я хочу использовать его в Qml как свойство (значение) QQuickItem, написанного на C ++:

MyQmlObject{
    value{ mantissa: 134; exponent: 3 }
}

Недвижимостьзначение затем используется в вычислениях в javascript и копируется несколько раз в течение долгого времени. Поэтому я не могу сделать значение свойством типа FixedPoint *, я думаю. Я прав?

Ответы на вопрос(1)

Ваш ответ на вопрос