Представлен gtkplatform, плагин для отрисовки Qt-приложений с использованием GTK+
В рамках проекта gtkplatform развивается новый метод для бесшовного отображения Qt-приложений в окружениях на базе GTK+. В отличие от решений, основанных на стилизации элементов оформления, в gtkplatform предлагается принципиально иной подход - к Qt подключается плагин с реализацией платформы отрисовки на базе GTK+. Иными словами оконные операции Qt-приложений транслируются в API GTK+, который используется как первичный тулкит. Код написан на языке С++ и по аналоги с Qt распространяется под лицензиями LGPLv3 и GPLv2+.
Реализованный в gtkplatform подход позволяет задействовать в Qt-приложениях родные диалоги, обработчики ввода и меню GTK+, что позволяет свести к минимуму видимые отличия при интеграции Qt-приложений в пользовательские окружения на базе GTK+. В том числе Qt-приложения могут бесшовно вписываться в окружение GNOME, работающее поверх Wayland. Подключение плагина производится через запуск приложения с установкой переменной окружения "QT_QPA_PLATFORM=gtk" или указания опции "-platform gtk".
На текущем этапе развития поддерживается отрисовка через GTK+ оконных компонентов, формируемых при помощи QPainter, QOpenGLContext, QOpenGLWidget и QtWebEngine, возможно использование буфера обмена, используются нативные меню и диалоги GTK+, обрабатываются события ввода от сенсорных экранов, клавиатур и мышей. Из планов отмечается подготовка вспомогательных обработчиков для задействования специфичных возможностей GTK+, таких как вынос панели инструментов в заголовок окна (GtkHeaderBar).