Uniform look for Qt and GTK applications (Українська)

From ArchWiki
Jump to: navigation, search

Related articles

Tango-preferences-desktop-locale.pngThis article or section needs to be translated.Tango-preferences-desktop-locale.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Talk:Uniform look for Qt and GTK applications (Українська)#)

В цій статті детально описується налаштування тем для GTK+ на QT застосунках щоб забезпечити єдиний стиль. Ця стаття охоплює налаштування, движки тем, хитрощі та пошук несправностей.

Вступ

Програми основані на Qt- та GTK+ використовують різні інструментарій віджет для відображення графічного інтерфейсу користувача. Між іншим кожен з них іде за замовчуванням з разнити темами, стилями та наборами значків, так що "зовнішній вигляд" істотно відрізняються. Ця стаття допоможе тобі зробити вигляд застосунків Qt та GTK+ подібними для більш раціонального та "інтегрованого" робочого столу.

"Qt (вимовляється як "кюте") крос-платформний фреймвок для розробки застосунків, який широко використовується для розробки програм GUI (в даному випадку він відомий як інструментарій віджетів), і зазвичай використовується для розробки не-GUI програм таких як консолі інструменти і сервери."

  • Тема - Колекція стилів, теми значків і теми кольору.
  • Стиль - Графічний макет; вигляд.
  • Тема значків - Набір глобальних значків.
  • Тема кольору - Набір глобальних кольорів які використовуються у поєднанні зі стилем.

Стилі

Тут описуються стилі, створені для інтеграції застосунків Qt та GTK+. З їх допомогою ви можете мати один вид для всіх додатків незалежно від інструментарію з допомогою яких вони були написані.

Зміна стилів

Для зміни стилю в Qt3 і застосунуках в KDE3:

Центр керування (kcontrol) --> Вигляд і Теми --> Стиль

Для зміни стилю застосунків Qt3 з зовні KDE3

Qt Налаштування (qt3config) --> Вигляд --> Вибір стилю GUI

Для зміни стилю застосунків Qt4 і KDE4 в KDE4:

Системне настроювання (systemsettings) --> Вигляд --> Стиль

Для зміни стилю застосунків Qt4 ззовні KDE4

Qt Налаштування (qtconfig) --> Вигляд --> Вибір стилю GUI

Для зміни стилю GTK+ версії 2 в KDE3:

# pacman -S gtk-chtheme

Запустіть, і ви матимене можливість змінити стиль. Ви також можете змінити шрифти. Будьласка зазначте, будь-які відкриті прогами треба буде перезавантажити для того, щоб новий вигляд набув чинності. Крім того, ви можете зробити те ж саме з двигуном, що згадуються нижче.

KDE4 Oxygen

QT4 встановлюється з KDE.

Є також програма GTK+, що називається oxygen-molecule і вона доступна з репозиторію oxygen-molecule-themeAUR[broken link: archived in aur-mirror] AUR. Її ціль забезпечити однаковий вигляд застосунків GTK+ під час використання під оточенням робочого столу KDE, і використовує залежність gtk-engine-pixbuf, що також доступна з gtk-engine-pixbufAUR[broken link: archived in aur-mirror] AUR.

Хоча пекети AUR надає деякі швидкі та дастітні інструкції для закінчення встановлення, завантажте oxygen-molecule з KDE-look для додаткової документації та різновидів.

QtCurve

Доступно для qt4 (kde4), qt3 (kde3), і gtk2 (gnome) в репозиторії [extra], цей високо-налаштовувальний стиль найбільш відомий округлювач (?)all-rounder). Він має багато управлінь для разних варіантів, починаючи з появи кнопки на формі слайдера. Ви можете встановити його використовуючи pacman.

# pacman -S qtcurve-gtk2 qtcurve-kde3 qtcurve-kde4

Інше

Подібні набори стилів є ті, які схожі один на другого - написані і приготовані для Qt і GTK+ - але не обов’язково від одного і того ж розробника. Ви мабуть маєте зробити деякі мінімальні налагодження, щоб зробити їх вигляд однаковим. нижче список:

  • klearlooks (qt3); clearlooks (gtk2)

Двигун Тем

Двигун тем може бути розглянуто як тонкий шар API, який переводить теми (виключаючи значки) між одним або декількома інструментаріями. Ці двигуни додати додатковий код в процесі, і можна стверджувати, що такого роду рішення не так елегантно і оптимальної як за допомогою власних стилів.

Двигуни GTK-QT

Двигуни GTK-QT для використання застосунків GTK+ що працюють в KDE, що просто означає, що це для KDE. Вони додають всі налаштунки Qt (стилі, шрифти, але не значки) в застосунки GTK+ і використовують плагіни стилів напряму. Зверніть увагу, що існують пролеми рендерингу з деякими стилями Qt.

# pacman -S gtk-qt-engine

Ви можете отримати доступ до них тут:

Центр управління (kcontrol) --> Зовнішній вигляд і Теми --> Стилі GTK і Шрифти

Якщо ви хочете видалити його повністю, і всі його файли, видаліть наступне:

  • ~/.gtkrc2.0-kde
  • ~/.kde/env/gtk-qt-engine.rc.sh
  • ~/gtk-qt-engine.rc

Заставити працювати з OpenOffice

Встановіть (як root):

export SAL_GTK_USE_PIXMAPPAINT=1

в /etc/profile. В KDE4 в системному настроюванні, переконайтесь що "використовувати мій стиль KDE в застосунках GTK" вибрано в Зовнішній вигляд > стилі і шрифти GTK.

QGtkStyle

This is a Qt style which intends to make applications blend perfectly into the GNOME desktop environment by using GTK to render all components. To use this style you must have at least GTK+ 2.0 and Qt 4.3, although Qt 4.4 or higher is preferred.

Note: Beginning with version 4.5 this style is included in Qt. You do not have to install this package yourself.

Having trouble making your Qt applications use QGtkStyle?

Qt won't apply QGtkStyle correctly if GTK is using the GTK-QT-Engine[broken link: invalid section]. Qt determines whether the GTK-QT-Engine[broken link: invalid section] is in use by reading the GTK configuration files listed in the environmental variable GTK2_RC_FILES. If the environmental variable is not set properly, Qt assumes you are using the GTK-QT-Engine[broken link: invalid section], sets QGtkStyle to use the style GTK style Clearlooks, and outputs an error message:

QGtkStyle cannot be used together with the GTK_Qt engine.

Users of Openbox and other non-GNOME environments may encounter this probem. Here is a solution:

  • Tell Qt where to look for your GTK configuration file by adding the following to your .xinitrc file:
    • To add multiple paths, separate them with colons.
    • The $HOME part will expand to be path to your user's home directory. Using the ~ shortcut won't work.
.xinitrc
...
export GTK2_RC_FILES="$HOME/.gtkrc-2.0"
...
.gtkrc-2.0
...
gtk-theme-name="Crux"
...

However it seems in sume cases those tools insert only an include directive like

.gtkrc-2.0
...
include "/usr/share/themes/SomeTheme/gtk-2.0/gtkrc"
...
which apparently is not recognized by all versions of QGtkStyle. You can hotfix this problem by inserting the gtk-theme-name manually in your .gtkrc-2.0 like above, note however that Gtk2-style-change applications might overwrite that change when you use them.

To choose your GTK theme for QT apps you must run:

qtconfig

Other Tricks

KDE file dialogs for GTK2 apps

KGtk is a wrapper script that LD_PRELOAD to force KDE file dialogs (open, save, etc) in GTK2 apps. If you use KDE and prefer its file dialogs over GTK's then you can install kgtk from AUR. Once installed you can run GTK2 applications with kgtk-wrapper in 2 ways (using gimp in the examples).

Calling kgtk-wrapper directly and using the GTK2 binary as an arguement

/usr/local/bin/kgtk-wrapper gimp

OR

Creating a symbolic link to kgtk using the name of the GTK2 binary. Then you can run /usr/local/bin/gimp when you want to run gimp with KDE dialogs.

ln -s /usr/local/bin/kgtk-wrapper /usr/local/bin/gimp
/usr/local/bin/gimp

Using custom GTK style

You can use custom styles for specific GTK2 applications. For this, use GTK2_RC_FILES=/path/to/theme/gtk-2.0/gtkrc appname

For example:

GTK2_RC_FILES=/usr/share/themes/QtCurve/qtk-2.0/gtkrc firefox

It will launch firefox with QtCurve theme.

Troubleshooting

How do I set styles for each toolkit?

You can use the following methods to change the theme used in each environment.

KDE3 and QT3 styles

  • Control Center (kcontrol) --> Appearance & Themes --> Style --> Widget Style
  • kde-config --style [name of style]
  • /opt/qt/bin/qtconfig

QT4 styles

  • /usr/bin/qtconfig

GTK2 styles

GTK1 styles

  • switch (gtk-theme-switch package)

Themes not working in GTK apps

If the style or theme engine you setup isn't showing in your GTK apps then it's likely your GTK settings files aren't being loaded for some reason. You can check where your system expects to find these files by doing the following..

$ export | grep gtk

Usually the expected files should be ~/.gtkrc for GTK1, ~/.gtkrc2.0 or ~/.gtkrc2.0-kde for GTK2

Newer versions of gtk-qt-engine use ~/.gtkrc2.0-kde and set the export variable in ~/.kde/env/gtk-qt-engine.rc.sh If you recently removed gtk-qt-engine and are trying to set a GTK theme then you must remove ~/.kde/env/gtk-qt-engine.rc.sh and reboot. Doing this will ensure that GTK looks for it's settings in the standard ~/.gtkrc2.0 instead of ~/.gtkrc2.0-kde