Как я могу заставить приложения Qt5 использовать тему GTK в Ubuntu 17.04?

9

Поскольку я обновился до Ubuntu 17.04, приложения Qt5 (такие как Qt Creator) больше не будут использовать тему GTK. Я попытался изменить это с помощью qt5ct , но в нем доступны только стили Fusion и Windows , хотя пакет qt5-gtk-platformthemeустановлен.

Как это можно исправить?

Редактировать: я использую Unity.

Филипп Людвиг
источник

Ответы:

7

Внешний вид приложений Qt5 определяется темами и стилями платформы. Тема платформы отвечает за значки, шрифты и т. Д., А стиль управляет отображением виджетов. Я думаю, вы обнаружите, что ваше приложение, такое как Qt Creator, использует тему платформы GTK3 в качестве стандарта.

Проблема возникла с Qt5.7. В этом выпуске тема и стиль платформы GTK2 были удалены и заменены темой платформы GTK3. Недавно я обсуждал с разработчиками Qt, и похоже, что нет стиля GTK3, дополняющего тему платформы, и в настоящее время нет планов реализовать это в будущем. Поэтому в Ubuntu по умолчанию используется стиль «Fusion» с использованием темы платформы GTK3.

Есть несколько способов добавить собственный стиль следующим образом:

  1. Старая тема и стиль платформы GTK2 по-прежнему доступны в отдельном пакете, qtstylepluginsкоторый можно скачать здесь . К сожалению, стиль GTK2 не совместим с темой платформы GTK3. Если вы хотите использовать стиль GTK2, вам придется использовать тему платформы GTK2. Это будет означать, что ваши диалоги и т. Д. Не выглядят нативно в Ubuntu 17.04. Тем не менее, вы можете предпочесть его «Fusion».
  2. Вы не указали, какую среду рабочего стола вы используете. Существует тема и стиль сторонней платформы, которая QGnomePlatformдоступна здесь и adwaita-qtдоступна здесь . Это обеспечивает полностью естественный внешний вид при использовании Ubuntu Gnome.

Что касается Qt Creator, я не уверен на 100%, использует ли он глобальные темы / стили. Возможно, вам придется установить их в {Qt_installation_folder}\Tools\QtCreator\lib\Qt\Plugins\platformthemes\и {Qt_installation_folder}\Tools\QtCreator\lib\Qt\Plugins\styles\.

gsxruk
источник
Спасибо за подробное объяснение. Я бы не стал возражать против Fusion, если бы рендеринг шрифтов не был таким ужасным. Есть ли где-то открытая ошибка по этому поводу?
Филипп Людвиг
Шрифты не выглядят плохо из того, что я видел в моей системе. У вас есть скриншот этого?
gsxruk
Я загрузил скриншот здесь: imgur.com/a/u34W6 Слева - Qt Creator, справа - сессия vim в gnome-terminal. Я согласен, что это очень тонко, но шрифты Qt кажутся мне размытыми (или размытыми?). Оба приложения настроены на Ubuntu Mono 12.
Филипп Людвиг,
Я понимаю, что вы имеете в виду, но я согласен, что это тонко. Извините, не знаю, что предложить на этот счет.
gsxruk
Если вам интересно: у меня были лучшие результаты с бесконечностью на funtoo, но, насколько я знаю, этот набор патчей больше не поддерживается должным образом. В любом случае, шрифты выглядят намного лучше на моем ноутбуке, который имеет панель IPS, поэтому, возможно, мне просто нужно обновить мой 7-летний дисплей на рабочем столе. Спасибо за вашу помощь!
Филипп Людвиг
5

Кроме того, qt5ctвам также нужно установить qt5-style-pluginsпакет, тогда вы должны получить тему 'gtk2' в qt5ct

sudo apt-get install qt5-style-plugins

И, согласно документации qt5ct , не забудьте установить QT_QPA_PLATFORMTHEME=qt5ctв /etc/X11/Xsession.d/56xubuntu-sessionи / или/etc/environment

Gyll
источник
Этот ответ у меня работает, без установки qt5ct.
DMT
да, установка только qt5-style-plugins (т.е. без qt5ct) прекрасно работает для стилизации qt5.7 + с помощью gtk2. qt5ct необходим, только если вы хотите использовать другие стили для qt5.7 +, кроме gtk2
Gyll
Кстати, будучи уставшим от несоответствий на моем рабочем столе, я закончил тем, что создал собственную тему, вы можете проверить ее, если несоответствия сводят вас с ума: xfce-evolution.sourceforge.net
Gyll,