Обновление Qt, выпущенное в марте 2021 года, привнесло изменения в мудуль QWidgets, которые разработчики должны учитывать при работе с графическим интерфейсом. Нововведения касаются вызова paint engine в QWidgets, который теперь не должен использоваться.
Статья:
Qt — это кроссплатформенный фреймворк, который позволяет разработчикам создавать графические интерфейсы, приложения и другие программы на различных операционных системах. Корпорация Digia, которая разрабатывает фреймворк, выпустила обновление Qt 5.15.3 в марте 2021 года. Одним из изменений данного обновления является нововведение в модуле QWidgets.
Ранее, при работе с графическим интерфейсом QWidgets, разработчики могли вызывать метод paint engine для отрисовки элементов интерфейса. Однако, с выпуском Qt 5.15.3, команда Digia рекомендует отказаться от использования данного метода.
Почему так произошло? Объяснение дано в документации Qt: «QWidget::paintEngine is considered obsolete and should no longer be called. Subclassing a custom widget to reimplement QWidget::paintEngine is no longer supported».
Вместо использования paint engine предлагается использовать другие методы, такие как QPainter и QStyle. Они обеспечивают более гибкий и быстрый процесс отрисовки элементов интерфейса и при этом не нарушают общую структуру приложения.
Впрочем, разработчики, которые уже используют paint engine, могут продолжать работать на старых версиях Qt, если им это более удобно. Нововведение в QWidgets касается только новых проектов.
Однако, учитывая потенциальные проблемы, связанные с использованием устаревших методов, команда Digia настоятельно рекомендует обновить текущие проекты на Qt 5.15.3 и использовать уже оптимизированные методы отрисовки.
Таким образом, согласно новым рекомендациям, в Qt 5.15.3 и последующих версиях вызывать paint engine в QWidgets больше не следует. При работе с графическим интерфейсом лучше использовать более современные методы, например, QPainter и QStyle.