Difference between revisions of "Uniform look for Qt and GTK applications (Русский)"

From ArchWiki
Jump to: navigation, search
(QGtkStyle)
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[Category:Desktop environments (Русский)]]
 
[[Category:Desktop environments (Русский)]]
 
[[Category:Eye candy (Русский)]]
 
[[Category:Eye candy (Русский)]]
{{i18n|Uniform Look for QT and GTK Applications}}
+
[[en:Uniform Look for Qt and GTK Applications]]
 
+
[[es:Uniform Look for Qt and GTK Applications]]
 +
[[it:Uniform Look for Qt and GTK Applications]]
 +
[[uk:Uniform Look for Qt and GTK Applications]]
 +
[[zh-CN:Uniform Look for Qt and GTK Applications]]
 
{{Article summary start}}
 
{{Article summary start}}
 
{{Article summary text|Эта статья описывает конфигурирование тем GTK+ и QT для их одинакого вида. Она описывает конфигурирование, theme engines, трюки возможные проблемы.}}
 
{{Article summary text|Эта статья описывает конфигурирование тем GTK+ и QT для их одинакого вида. Она описывает конфигурирование, theme engines, трюки возможные проблемы.}}
 
{{Article summary heading|Related}}
 
{{Article summary heading|Related}}
{{Article summary wiki|GTK+)}}
+
{{Article summary wiki|GTK+}}
 
{{Article summary end}}
 
{{Article summary end}}
 
{{translateme}}
 
{{translateme}}
Line 26: Line 29:
  
 
Версия для QT4 устанавливается вместе с [[kde]].
 
Версия для QT4 устанавливается вместе с [[kde]].
Версия для GTK, которая называется {{AUR|oxygen-molecule-theme}} доступна в [[AUR]]
+
Версия для GTK, которая называется {{AUR|oxygen-molecule-theme}} доступна в [[Arch User Repository (Русский)|AUR]]
  
 
== QtCurve ==
 
== QtCurve ==
Line 52: Line 55:
  
 
=== Make it work with OpenOffice ===
 
=== Make it work with OpenOffice ===
Set (as root):
+
Вставьте (пользователем root):
 
  export SAL_GTK_USE_PIXMAPPAINT=1
 
  export SAL_GTK_USE_PIXMAPPAINT=1
into /etc/profile. In KDE4 systemsettings, make sure "use my KDE style in GTK applications" is selected in Appearance > GTK styles and fonts.
+
в /etc/profile. В systemsettings (KDE4) удостоврьтесь, что "use my KDE style in GTK applications" выбрано в Appearance > GTK styles and fonts.
  
 
== QGtkStyle ==
 
== QGtkStyle ==
Line 60: Line 63:
 
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.
 
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.}}
+
{{Note|Начиная с версии 4.5 этот стиль включён в Qt. Вам не надо устанавливать этот пакет самому.}}
  
 
===Having trouble making your Qt applications use QGtkStyle?===
 
===Having trouble making your Qt applications use QGtkStyle?===
Line 68: Line 71:
 
  QGtkStyle cannot be used together with the GTK_Qt engine.
 
  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:
+
Пользователи [[Openbox (Русский)|Openbox]] и других неGNOME окружений могут встретить эту проблему. Вот её решение:
  
 
*Tell Qt where to look for your GTK configuration file by adding the following to your {{ic|.xinitrc}} file:
 
*Tell Qt where to look for your GTK configuration file by adding the following to your {{ic|.xinitrc}} file:
Line 77: Line 80:
 
...}}
 
...}}
  
*In {{ic|.gtkrc-2.0}} you must specify a GTK theme. For example:
+
*В {{ic|.gtkrc-2.0}} вы должны указать тему GTK. Например:
**This is usually done for you by an [[Uniform Look for QT and GTK Applications#GTK2_styles|application which sets GTK2 Styles]]
+
**This is usually done for you by an [[Uniform Look for QT and GTK Applications#Стили_GTK2|application which sets GTK2 Styles]]
 
{{hc|.gtkrc-2.0|2=...
 
{{hc|.gtkrc-2.0|2=...
 
gtk-theme-name="Crux"
 
gtk-theme-name="Crux"
Line 87: Line 90:
 
...}} 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.
 
...}} 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:
+
Чтобы выбрать тему GTK для Qt приложений введите:
  
 
  qtconfig
 
  qtconfig
  
 
= Other Tricks =
 
= Other Tricks =
== KDE file dialogs for GTK2 apps ==
+
== Файловые диалоги KDE для GTK2 приложения ==
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).
+
KGtk is a wrapper script that LD_PRELOAD to force KDE file dialogs (open, save, etc) in GTK2 apps. Если вы используете KDE и предпочитаете нативные файловые диалоги, тогда установите kgtk из [[Arch User Repository (Русский)|AUR]]. После установки вы сможете запускать GTK2 приложения через kgtk-wrapper двумя способами (в примерах — gimp):
  
Calling kgtk-wrapper directly and using the GTK2 binary as an arguement
+
*Запуская kgtk-wrapper напрямую используя GTK2 приложение как аргумент.
 
  /usr/local/bin/kgtk-wrapper gimp
 
  /usr/local/bin/kgtk-wrapper gimp
  
OR
+
*Создав символическую ссылку на kgtk используя имя вашего GTK2 приложенияТогда вы сможете запускать /usr/local/bin/gimp, когда захотите запустить gimp с файловыми диалогами KDE.
 
+
Creating a symbolic link to kgtk using the name of the GTK2 binaryThen 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
 
  ln -s /usr/local/bin/kgtk-wrapper /usr/local/bin/gimp
 
  /usr/local/bin/gimp
 
  /usr/local/bin/gimp
Line 107: Line 108:
 
aMSN's TK file dialogs are plain looking but no fear there is a plugin that will allow you to use GTK or KDE file dialogs to match your desktop.  You can find the plugin on [http://www.amsn-project.net/plugins.php aMSN's Plugin Page]
 
aMSN's TK file dialogs are plain looking but no fear there is a plugin that will allow you to use GTK or KDE file dialogs to match your desktop.  You can find the plugin on [http://www.amsn-project.net/plugins.php aMSN's Plugin Page]
  
== Using custom GTK style ==
+
== Использование своих стилей GTK ==
You can use custom styles for specific GTK2 applications. For this, use GTK2_RC_FILES=/path/to/theme/gtk-2.0/gtkrc appname
+
Вы можете использовать свои стили для определённых приложений GTK. Для этого: GTK2_RC_FILES=/path/to/theme/gtk-2.0/gtkrc имя_приложения
  
For example:
+
Например:
 
  GTK2_RC_FILES=/usr/share/themes/QtCurve/qtk-2.0/gtkrc firefox
 
  GTK2_RC_FILES=/usr/share/themes/QtCurve/qtk-2.0/gtkrc firefox
It will launch firefox with QtCurve theme.
+
Так запустится firefox с темой QtCurve.
  
= Troubleshooting =
+
= Решение проблем =
  
 
== How do I set styles for each toolkit? ==
 
== How do I set styles for each toolkit? ==
Line 120: Line 121:
 
You can use the following methods to change the theme used in each environment.
 
You can use the following methods to change the theme used in each environment.
  
==== KDE3 and QT3 styles ====
+
==== Стили KDE3 и QT3 ====
 
* Control Center (kcontrol) --> Appearance & Themes --> Style --> Widget Style
 
* Control Center (kcontrol) --> Appearance & Themes --> Style --> Widget Style
* kde-config --style [name of style]
+
* kde-config --style [название стиля]
 
* /opt/qt/bin/qtconfig
 
* /opt/qt/bin/qtconfig
  
==== QT4 styles ====
+
==== Стили QT4 ====
 
* /usr/bin/qtconfig
 
* /usr/bin/qtconfig
  
==== GTK2 styles ====
+
==== Стили GTK2 ====
 
* {{Pkg|lxappearance}}
 
* {{Pkg|lxappearance}}
 
* {{Pkg|gtk-chtheme}}
 
* {{Pkg|gtk-chtheme}}
Line 135: Line 136:
 
* [[GTK%2B#GTK.2B_2.x|Manual configuration]]
 
* [[GTK%2B#GTK.2B_2.x|Manual configuration]]
  
==== GTK1 styles ====
+
==== Стили GTK1 ====
 
* switch (gtk-theme-switch package)
 
* switch (gtk-theme-switch package)
  
== Themes not working in GTK apps ==
+
== Темы не работают в GTK приложениях ==
  
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..
+
If the style or theme engine you setup isn't showing in your GTK apps, тогда возможно ваши файлы настроек GTK почему-то не загружаются. Вы можете проверить где ваша система предполагает увидеть эти файлы, для этого введите:
 
  $ export | grep gtk
 
  $ export | grep gtk
  
Usually the expected files should be ~/.gtkrc for GTK1, ~/.gtkrc2.0 or ~/.gtkrc2.0-kde for GTK2
+
Обычно файлы такие: ~/.gtkrc для GTK1, ~/.gtkrc2.0 или ~/.gtkrc2.0-kde для GTK2.
  
Newer versions of gtk-qt-engine use ~/.gtkrc2.0-kde and set the export variable in ~/.kde/env/gtk-qt-engine.rc.sh
+
Новые версии gtk-qt-engine используют ~/.gtkrc2.0-kde and set the export variable in ~/.kde/env/gtk-qt-engine.rc.sh. Если вы недавно удалили gtk-qt-engine и пытаетесь поставить тему GTK, вам надо удалить ~/.kde/env/gtk-qt-engine.rc.sh и перезагрузиться. Doing this will ensure that GTK looks for it's settings in the standard ~/.gtkrc2.0 instead of ~/.gtkrc2.0-kde
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
+

Revision as of 10:00, 21 January 2014

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary end

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 (Русский)#)

Введение

Программы, основанные на Qt и GTK+ используют разные способы отображения графического интерфейса. Они используют различные темы, стили, иконки и многие другие вещи, так что выглядят довольно непохоже. Эта статья поможет Вам сделать Ваши Qt и GTK+ приложения выглядящими более одинаково и интегрированно.

  • Тема - Набор стилей, тема иконок и цветовая схема.
  • Стиль - Graphical layout; look.
  • Тема иконок - Глобальный набор иконок.
  • Цветовая схема - Глобальный набор цветов, используемый в сочетании со стилем.

Стили

Здесь описываются стили, созданные для интеграции Qt и GTK+ приложений. С ними, Вы можете сделать так, чтобы Ваши приложения выглядели одинаково, не зависимо от тулкита, на котором они написаны.

KDE4 Oxygen

Версия для QT4 устанавливается вместе с kde. Версия для GTK, которая называется oxygen-molecule-themeAUR доступна в AUR

QtCurve

Доступный для qt4 (kde4), qt3 (kde3), и gtk2 (gnome) через [extra] репозиторий, этот стиль также достаточно популярен. Вы можете установить его, используя pacman.

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

Theme Engines

A Theme Engine can be thought of as a thin layer API which translates themes (excluding icons) between one or more toolkits. These engines add some extra code in the process and it is arguable that this kind of a solution is not as elegant and optimal as using native styles.

GTK-QT-Engine

This one is for use by GTK+ applications running in KDE, which basically means this is for KDE. It applies all Qt settings (styles, fonts, not icons though) to the GTK+ applications and uses the style plug-ins directly. Please note that there are rendering issues with some Qt styles.

# pacman -S gtk-qt-engine

You can access it from:

Control Center (kcontrol) --> Appearance & Themes --> GTK Styles and Fonts

If you want to remove it entirely and every trace of it, you should delete the following files:

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

Make it work with OpenOffice

Вставьте (пользователем root):

export SAL_GTK_USE_PIXMAPPAINT=1

в /etc/profile. В systemsettings (KDE4) удостоврьтесь, что "use my KDE style in GTK applications" выбрано в Appearance > GTK styles and fonts.

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: Начиная с версии 4.5 этот стиль включён в Qt. Вам не надо устанавливать этот пакет самому.

Having trouble making your Qt applications use QGtkStyle?

Qt won't apply QGtkStyle correctly if GTK is using the GTK-QT-Engine. Qt determines whether the GTK-QT-Engine 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, sets QGtkStyle to use the style GTK style Clearlooks, and outputs an error message:

QGtkStyle cannot be used together with the GTK_Qt engine.

Пользователи Openbox и других неGNOME окружений могут встретить эту проблему. Вот её решение:

  • 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.

Чтобы выбрать тему GTK для Qt приложений введите:

qtconfig

Other Tricks

Файловые диалоги KDE для GTK2 приложения

KGtk is a wrapper script that LD_PRELOAD to force KDE file dialogs (open, save, etc) in GTK2 apps. Если вы используете KDE и предпочитаете нативные файловые диалоги, тогда установите kgtk из AUR. После установки вы сможете запускать GTK2 приложения через kgtk-wrapper двумя способами (в примерах — gimp):

  • Запуская kgtk-wrapper напрямую используя GTK2 приложение как аргумент.
/usr/local/bin/kgtk-wrapper gimp
  • Создав символическую ссылку на kgtk используя имя вашего GTK2 приложения. Тогда вы сможете запускать /usr/local/bin/gimp, когда захотите запустить gimp с файловыми диалогами KDE.
ln -s /usr/local/bin/kgtk-wrapper /usr/local/bin/gimp
/usr/local/bin/gimp

aMSN GTK or KDE dialogs

aMSN's TK file dialogs are plain looking but no fear there is a plugin that will allow you to use GTK or KDE file dialogs to match your desktop. You can find the plugin on aMSN's Plugin Page

Использование своих стилей GTK

Вы можете использовать свои стили для определённых приложений GTK. Для этого: GTK2_RC_FILES=/path/to/theme/gtk-2.0/gtkrc имя_приложения

Например:

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

Так запустится firefox с темой QtCurve.

Решение проблем

How do I set styles for each toolkit?

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

Стили KDE3 и QT3

  • Control Center (kcontrol) --> Appearance & Themes --> Style --> Widget Style
  • kde-config --style [название стиля]
  • /opt/qt/bin/qtconfig

Стили QT4

  • /usr/bin/qtconfig

Стили GTK2

Стили GTK1

  • switch (gtk-theme-switch package)

Темы не работают в GTK приложениях

If the style or theme engine you setup isn't showing in your GTK apps, тогда возможно ваши файлы настроек GTK почему-то не загружаются. Вы можете проверить где ваша система предполагает увидеть эти файлы, для этого введите:

$ export | grep gtk

Обычно файлы такие: ~/.gtkrc для GTK1, ~/.gtkrc2.0 или ~/.gtkrc2.0-kde для GTK2.

Новые версии gtk-qt-engine используют ~/.gtkrc2.0-kde and set the export variable in ~/.kde/env/gtk-qt-engine.rc.sh. Если вы недавно удалили gtk-qt-engine и пытаетесь поставить тему GTK, вам надо удалить ~/.kde/env/gtk-qt-engine.rc.sh и перезагрузиться. Doing this will ensure that GTK looks for it's settings in the standard ~/.gtkrc2.0 instead of ~/.gtkrc2.0-kde