tags:

views:

133

answers:

2

Do GTK apps look native in those environments?

+3  A: 

No, GTK does not look native on either Windows/Mac. There are themes to improve the visual differences, and there are also some projects working on making GTK look and behave more natively, such as IGE-mac, GTK Quartz.

All in all, GTK on Windows is closer to native than GTK on Mac, so it should be possible to get a native looking GTK on Windows with a little effort. If you really need a toolkit that looks native on Windows/OSX/X11, and you're not limited to C, I think QT is a little closer to accomplishing that than GTK is at the moment.

Mic
klez
Never claimed it wasn't.
Mic
No you didn't actually. But since he was asking about GTK+ it may not be clear that GTK+ is in C and Qt is not. It was just to clarify.
klez
Donal Fellows
Fair enough :). Edited my response, clarified the qt statement.
Mic
@Donal Fellows, I didn't say so. I just said that GTK+ and Qt don't differ JUST in the look and feel.
klez
+1  A: 

Neither GTK (nor Qt) looks particularly native on Windows, particularly if the native theme is one of the modern ones. The challenge is due to the way that the newer GUIs are drawn.

But that's as nothing to how out-of-place they both look on OSX. There, the main problem is that the platform standards for laying out and interacting with GUIs are totally different. You can't easily hide the difference between a modal and a non-modal dialog! And where the buttons are placed (and exactly which buttons are placed) and how they all behave, that's all different too.

Donal Fellows
The thing about "where which buttons are placed" is actually an area where Qt has some support, at least for the OK/Cancel - Cancel/OK difference between Windows and OSX. I don't know enough about the other things though.
OregonGhost
@OregonGhost: It goes a bit deeper than that. The interaction model for properties/configuration dialogs is different. On Windows, you edit things then OK/Apply them. On OSX, direct manipulation is the name of the game. This in turn causes you to provide the controls for making the change in a somewhat different way (e.g., on Win there may be previews; on OSX you're more careful to make it easy to go back to what there was before without difficulty).
Donal Fellows
Ultimately, the difficulty is that the *theory* of how the UI is interacted with is different. You can't really hide that; you have to code to support it from the beginning and that's just alien to how most coders (who only develop for a single platform) work.
Donal Fellows
True. I guess it's just another reason to do all non-GUI things platform-independent, and write a GUI frontend for each platform with its native toolkit :)
OregonGhost
The best way is to design it to conform to the Apple Human Interface Guidelines. They are normally the most complex. Then add a few disable flags etc. for the windows version to get the more easy (OK/Apply) style of property dialogs. And Windows/Linux people are usually accepting Apple Styleguides but not the other way round.
Lothar