Ответы пользователя по тегу Qt
  • Какие-то непонятки с Q_ENUMS и Q_INVOKABLE при наследовании, почему?

    @abukirev
    C++/Qt developer/Tech Lead
    1. Попробуйте зарегистрировать и само перечисление так:
    Q_DECLARE_METATYPE(CommunicationEnums::EButtons)
    и
    qmlRegisterUncreatableType("EButtons", 1, 0, "EButtons", "Error class uncreatable");

    2. На сколько помню, была такая проблема в 5.2, даже находили багу с описанием в багтрекере Qt. Суть в том, что мета-объектная система не регистрировала нормально перечисления и их приходилось дублировать в каждом классе к которому шли обращения из QML.

    Какая у Вас версия Qt?
    Ответ написан
  • Способ обмена данными по серийному порту?

    @abukirev
    C++/Qt developer/Tech Lead
    Если уже используете Qt / С++, то лучше пожалуй сделать некую иерархию классов пакетов. Данные можно завернуть в QByteArray и реализовать удобные функции для работы с пакетом - его создание / формирование и его чтение / разбор. Для быстрой отладки и расширения оно того стоит.

    А еще можете посмотреть на Qt Modbus модуль, если используемая версия Qt позволяет.
    Ответ написан
  • Как увеличить производительность Qt Quick и QML?

    @abukirev
    C++/Qt developer/Tech Lead
    Улучшить производительность проекта на Qt Quick / QML можно. Единый рецепт улучшения дать сложно, т.к. это зависит от многих факторов, которые не ясны из вопроса. Начиная от окружения и решаемой задачи, так и версии Qt. Некоторые из старых проблем производительности QML в Qt уже решены и советы по ним будут не актуальны.
    Общие советы:
    - не перегружать QML логикой (QML отвечает только за представление, все остальное надо делать в С++)
    - не использовать тяжеловесные картинки(мегабайтная картинка будет тормозить) и некорректный размер (будут уходить ресурсы на пересчет)
    - не использовать большого пересечения разных цветных областей (лучше положить готовую картинку, нежели отрисовывать ее слоями с разной прозрачностью, градиентами и т.д.)
    - ....

    Например вот так делать не надо - конечно будут проблемы на старте.

    медленная скорость запуска и такая же перерисовка окна.

    На какой системе и с какими параметрами происходит запуск? Честно говоря выглядит странно, т.к. QML нормально отрабатывает и на мобильных устройствах и на embeded, а тут так понимаю desktop...

    Выбираю, какую технологию использовать при написании кроссплатформенного десктопного приложения. Выбор пал на Qt, но не знаю, что использовать - Qt Widgets или Qt Quick

    Если нужны стандартные десктопные приложения со стандартными элементами, то Qt Widget будет удобнее.
    Ответ написан