4 ms·
I don't have experience with GTK and I stopped working on Desktop apps since 4 years ago. If you target Mac users only then use the Apple tools, if you target W
by simion314 7y ago
I don't have experience with GTK and I stopped working on Desktop apps since 4 years ago. If you target Mac users only then use the Apple tools, if you target Windows only I would use .Net (C# and WinForms or WPF) for cross platform depending of the target users I would use Qt or Java.
My choices are more on what is better for the user and not on what is cool for the developer. Also if you have a small tool that the user will use it a few minutes he will not complain about it's look the functionality is important. As an example the games Sims 3 runs on Windows and Mac(not the latest Catalina) and community made tools for cleaning save files. Most popular tool was .Net and Windows only but someone made a Java tool that was cross-platform, the users were happy/great full and not entitled to demand profesional looking GUI for such a tool.
My advice , if you need a simple UI, buttons, labels, inputs then you should use the thing that has the best support for the language and platform you target. If you need to embed a uptodate webview or a video player or you need to draw graphs, customize widgets then you need a different tool.
If you can provide what you need in details, what platforms, languages and features you need then people could help eliminate the bad choices.
- xwowsersx 7y agoThanks for the reply. Why does Transmission, for example, have a Mac app and a GTK app? They wanted a more polished Mac appaand gtk doesn't cut it?
- kn0where 7y agoYes, the Mac version of Transmission has a much more Mac-like UI that can’t entirely be replicated in something like GTK.
- solarkraft 7y agoTransmission is an interesting case, since they also have a version in Qt. Another example of an almost identical app written on a completely different platform would be the Fork git client with Cocoa and WPF.
- simion314 7y agoQt has a company behind so is more professional, better documentation, better cross platform support, less bugs. This video https://www.youtube.com/watch?v=ON0A1dsQOV0 https://www.youtube.com/watch?v=ON0A1dsQOV0 is about the reasons Subsurface (a diving app started by Linus Torvalds) changed from GTK to Qt. Things might have improved from GTK I can't tell and also for simpler GUIs GTK might be enough.
- PaulDavisThe1st 7y agoI've been working with GTK for a cross-platform app for 20 years (actually cross-platform for 15 or so). I've had the opportunity to have fairly deep interactions with people who've used Qt for similar projects. The reality is that if your app is substantive in its GUI requirements, then neither Qt nor GTK will entirely shield you from platform specifics, and both of them will fall down in some situations (a little different for each toolkit). Historical note: I decided to use GTK and not Qt because in the 1990s, Qt, despite being written in C++, was incredibly non-C++-idiomatic. It had its own string class, and required a Qt-provided pre-processor to be run on your code to get their signals/slots mechanism to work (think "anonymous callbacks"). GTK, by contrast, had a C++ binding that fully embraced the power of the C++ of the time. At this point, this difference between them has largely gone away. Qt has far more in its toolset to help people design and build apps, but when you get down to what they can actually do at runtime, there's not a lot of difference. My one outstanding gripe about GTK is that the initial "G" used to stand for GIMP (it was written to support the development of that application), but now stands for GNOME. This doesn't ruin GTK as a general application toolkit, but some of the design decisions (at several different levels) do reflect its status as the "GNOME Toolkit" rather than a totally platform-agnostic GUI toolkit.
- simion314 7y ago> I decided to use GTK and not Qt because in the 1990s, Qt, despite being written in C++, was incredibly non-C++-idiomatic. Yeah, but there were good reasons for Qt to do that, I think that is just a taste thing, when you want to make an application that works the fact that Qt has a sane string,vector, signals is a plus(you did not need boost or third party code) , coming from Java or .Net Qt feels right. For GUIs I did not hit cross platform related issues. I think I had to re-arrange some menus depending on OS but not to use native code. The only time I had to use some native stuff and I had to include windows.h was because I needed to on a multi screen setup to get each screen dimensions and at that moment this was not implemented or bugged(I do not remember). About GTK, I strongly dislike the fact they are using their own File Chooser dialog and not the native one and that you can't customize the sorting order in it, especially on GTK2. So I have a few GTK2 apps and I always find it hartd to find my files because n how them are sorted , though in GTK3 I found a config options to change it a bit. I would still use GTK if the problem to solve would require Python and a simple GUI like ask the user for a name, to chose a file, input some text. show an image and it is a Linux tool only. About GNOME I agree, it could be possible in future GTK won't officially support menus, tray icons and other things that GNOME does not want.