It’s odd but even though KDE is built on QT, QT apps can look rather… bad in KDE. QT has a bunch of styles built in, but Oxygen, the KDE default, is not built-in. The way it can be used is through the shared QT libraries in the Linux distribution (or I suppose other operating systems). But many QT apps just use static libraries it bundles within itself. The result of that is that said QT apps don’t have access to QT styles that the operating system does. Those static QT app can use the styles bundled with the app and no others.

The net result is that there are three types of QT apps.

1) Apps with dynamically linked libraries and are thus able to use the Oxygen style. They look great!

2) Apps with static QT libraries that include the gtk style in QT. Because of the oxygen-gtk GTK theme. In essence the app launches in KDE (powered by QT), runs the GTK style for QT which uses GTK to draw it’s widgets and GTK uses the Oxygen GTK theme. In the end it looks right. Hopefully the app in question will let you choose which QT style to use like the Skype app. The Skype app by the way seemed to start out in the base QT theme, plastique.

Skype Preferences

If not, you can use the command-line switch to manually specify it.

appname  -style=gtk

3) Apps with static QT libraries that don’t include the GTK style. No hope there for a perfect match. The Scrivenever for Linux app appears to fall into this category. However, you can make Scrivener and many other QT apps look better by using the qtconfig app. You can install this in Ubuntu with the qt4-qtconfig package. Run qtconfig and you can specify the theme QT apps should use by default. Make sure you save the changes you make (which show up instantly on running apps). If the app (like Scrivener) doesn’t include the GTK style, changing it to GTK+ in qtconfig won’t help. For me, Plastique and Cleanlooks offered the best visuals for Scrivener. Hopefully when it’s released they’ll compile packages for actual distributions with shared QT libs and everything.