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.

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

Set (as root):

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.

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

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.