Как я могу создать тему для моего приложения Qt, похожего на написанное на Gtk?

Марк Шаттлворт недавно написал в блоге о решении включить библиотеки Qt в выпуск 11.10 вместе с продолжением Jono Bacon. То, что отвлекает меня от приложений Qt, заключается в том, что они не очень хорошо сочетаются с темой, основанной на Gtk в Ubuntu. Недавно я прочитал статью Ars Technica, в которой упоминалось, что, приложив немного усилий, приложения Qt могут быть похожи на приложения Gtk.

Есть ли какая-либо документация, которая поможет мне сделать это, и если нет, кто-нибудь хотя бы имеет представление о том, как это сделать?

4 ответа

Решение

Примечание: это полезно для пользователей настольных компьютеров, а не для разработчиков, использующих Qt.

sudo apt-get install qt4-qtconfig, затем перейдите к настройкам System / Preferences / Qt 4 и выберите стиль GTK в первом выпадающем списке:

Диалог конфигурации Qt

Приложения Qt не следуют настройкам подсказок шрифтов, которые установлены gnome-appearance-properties, Вам необходимо явно добавить запись в $HOME/.fonts.conf например

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 <match target="font" >
  <edit mode="assign" name="rgba" >
   <const>rgb</const>
  </edit>
 </match>
 <match target="font" >
  <edit mode="assign" name="hinting" >
   <bool>true</bool>
  </edit>
 </match>
 <match target="font" >
  <edit mode="assign" name="hintstyle" >
   <const>hintfull</const>
  </edit>
 </match>
</fontconfig>

Из поста SU Нагуль https://superuser.com/questions/37444/how-can-i-make-kde-and-other-non-gnome-apps-inherit-the-ubuntu-theme - прямая цитата:

Проверьте QGtkStyle, проект по созданию слоя GTK+ для приложений на основе Qt (таких как KDE), работающих на рабочих столах на основе GTK2 (таких как Gnome).

В обсуждении этой темы на Ubuntu Brainstorm есть идея и сценарии. Идея № 1744: темы GNOME должны затрагивать темы Qt, и другие из них обсуждаются. Идея № 1714: интеграция GNOME QT (и многочисленные повторяющиеся идеи, собранные в рамках этой темы). вопрос).

Одной из заслуживающих внимания попыток является UniformUI, который пытается автоматизировать настройку параметров Qt в соответствии с текущим стилем Gtk+, частично используя QtCurve и QGtkStyle для достижения этой цели.

Четвёртый результат Google по запросу "skin qt to gtk"

Это делает работу, в Qt 5 и Gtk+ 3:

export QT_STYLE_OVERRIDE=gtk
Другие вопросы по тегам