Экспорт констант в qml

У меня есть отдельный класс со статическими константами (в данный момент строковыми)

namespace constants {
Q_NAMESPACE

class SharedConstants : public QObject {
    Q_OBJECT
    Q_PROPERTY(QString Property MEMBER Property CONSTANT)
public:
    static inline const QString Property{"MY_PROPERTY_TEXT"};
};

} // namespace constants

В main.cpp я прокидываю его в qml с помощью

    qmlRegisterUncreatableType<constants::SharedConstants>(
                "Constants", 1, 0, "SharedConstants", "SharedConstants class is not createable");

И при попытке обращения к моему свойству в qml с помощью

import Constants 1.0
...
console.info(SharedConstants.Property)

Я получаю вывод undefined

Предполагаю, что статичные параметры класса не были почему-то определены в qml, но не понимаю почему.

Изначально я пытался просто прокинуть константы в qml, с условием что мне необходимо использовать import Constants. Но не пришел к успеху и решил использовать класс, как вспомогательный инструмент. Хотя и тут что-то у меня не складывается. Помогите, пожалуйста. Если вы знаете как прокинуть константы из namespace в qml с использованием import, тоже буду благодарен.

Использую Qt 5.15.2, стандарт cpp 17.


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

Автор решения: Илья Ковалев

Замена

qmlRegisterUncreatableType

на

qmlRegisterSingletonType

или

qmlRegisterSingletonInstance

решили мою проблему, и все стало корректно работать.

→ Ссылка