Название: .pragma library vs. QObject+Q_PROPERTY Отправлено: Alex Custov от Декабрь 25, 2014, 16:23 Оф. документация советует не использовать .pragma library для хранения application-wide данных (например, констант). Вместо этого советуют использовать синглетон QObject - очевидно, как C++ класс с множеством полей Q_PROPERTY, в которых будут хранится наши константы:
http://doc.qt.io/qt-5/qtquick-performance.html Цитировать Use singleton types instead of pragma library scripts If you are using a pragma library script to store application-wide instance data, consider using a QObject singleton type instead. This should result in better performance, and will result in less JavaScript heap memory being used. Например, был файл constants.js: Код и многими другими константами. Мы переделываем в C++ Код
В тоже время когда-то читал, что не стоит злоупотреблять вызовами из JS к С++ коду, т.к. они не быстрые. У меня обращений к константам много, сотни. Не понимаю, почему рекомендуют использовать QObject? Разве это будет быстрее, чем .pragma library? Название: Re: .pragma library vs. QObject+Q_PROPERTY Отправлено: navrocky от Декабрь 29, 2014, 21:06 Есть еще новый способ задавать синглтоны с помощью pragma Singleton, оно слабо задокументировано, но работает. На мой взгляд удобнее чем .pragma library, т.к. свойства можно типизировать и грузить глобальные компоненты средствами QML.
http://qt-project.org/groups/qt-contributors-summit-2013/wiki/Evolution-of-the-QML-language В этой статье, правда, допущена ошибка. Надо обязательно писать "pragma Singleton" с большой буквы иначе ничего работать не будет. |