Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Comparison of GUI development tools for linux [closed]

I am fairly new to the domain of GUI design and development. I do have some prior experience but that is with Visual Basic.

I would like to develop a reasonably comprehensive (though not state-of-the-art) GUI application on linux based on a command line app. that I have. Having done some googling, I do find that there are mainly three good (or perhaps that is what I feel) ways to achieve this goal:

  1. GTK+ library with GLADE as the designer
  2. Qt library with Qtdesigner as the designer
  3. Java swing with Netbeans

In order to settle upon one of the above (or reject all of them), I would have to know the following aspects of each item in the above list. These aspects, in decreasing order of their priority are:

  1. Licensing: I would not be able to shell out too many bucks here...
  2. Programming language support: I know C/C++ and very little Java.
  3. Ease of learning / use
  4. Flexibility and power: It would be really nice if most (if not all) features that I need are available in the core library.
  5. (Lack of) additional dependencies: Reasoning same as point number 4
  6. Look and feel
  7. Platforms supported / Portability (effort required to switch platform)

Any ideas on the above topics would be worth their weight in gold (I wouldn't want to realize after one month that I chose the wrong tool for my job). Are there any other tools more fitting to my purpose that I am unaware of?

Point-blank answers would most help.

EDIT: Ok so I have finally gone with Qt. Simply because it is easier to learn and appears more portable than GTK+ (to me ofcourse).

like image 658
puffadder Avatar asked Sep 07 '10 08:09

puffadder


People also ask

Which programming language is best for GUI?

Java seems to have the best built in support for GUI programming, however, C++ using the MFC libraries has more than adequate tools for GUI development and may be a better choice when speed and efficiency are important.

What are Linux development tools?

These development tools includes all necessary applications, such as GNU GCC C/C++ compilers, make, debuggers, man pages and others which are needed to compile and build new software and packages.

Is Python good for GUI?

While being incredibly useful for the fields of data science and machine learning, Python is also great for developing graphical user interfaces! In fact, it has many frameworks that even beginners can use to easily get started with developing a GUI.

What GUI should I learn for Python?

PyQt5 is a very well-known GUI framework used by both Python coders and UI designers. One of its components, the PyQt package, is built around the Qt framework, which is a leading cross-platform GUI design tool for just about any kind of application.


2 Answers

Qt is your best bet.

  1. The Qt license states

    Nokia grants Licensee a non-exclusive, royalty-free right to reproduce and distribute the object code form of Redistributables for execution on the specified Platforms.

    So you should have no problem about license

  2. It's written in/for C++

  3. It's not so hard to learn
  4. The library (althought modular) contains everything you need to develop a full-blown GUI and also some extra (XML, networking...)
  5. I don't know about this, sorry, but I don't think there are any dependencies (on the client side)
  6. The look and feel is native to the enviroment for which the application is compiled (that is Windows look&feel on Windows, OSX look&feel on OSX)
  7. Qt is supported on a vast range of desktop enviroments
like image 71
Federico klez Culloca Avatar answered Nov 01 '22 07:11

Federico klez Culloca


To make the case for GTK:

  1. LGPL licensing.
  2. Written in C, but is usable with almost any programming language, including C++, Python, Javascript, Haskell, etc. Recently a new programming language, Vala, was developed which has native support for GTK's objects, signals, and properties. Its syntax is very similar to C# and its purpose is to allow very fast development of applications using GTK. (That's because using it in the original C does tend to produce very verbose code.)
  3. If you understand object-oriented principles (which is not necessarily everybody who's taken a Java course at university) then it's easy to learn.
  4. The library is divided into two main parts: GLib, the core library, and GTK, the GUI library. GLib has many features you will need for developing applications: all kinds of data structures, threads, regular expressions, key-value file parser, XML-like markup language parser (for full XML you need the libxml2 library though), ansynchronous I/O, networking. GTK contains everything graphical.
  5. It used to be that quite a lot of applications had the entire set of GNOME libraries as a dependency, but that's not the case anymore, since a lot of the useful functionality has been moved into GLib and GTK. You should be able to write a full-featured application without any extra dependencies.
  6. Look and feel depends on the platform. On GNOME, GTK basically defines the look and feel. On Windows, the native look and feel is emulated almost perfectly. On OS X, not so much.
  7. On Windows and OS X it takes some doing to get the libraries set up properly. OS X is especially a pain in the ass, where you have the choice between running an X11 server or using the harder-to-set-up Quartz backend. Qt is probably easier in that respect. However, your application's code is fully cross-platform and so should not require any porting to run on any of these systems.

I hope I've accurately represented the pros and cons for you.

like image 6
ptomato Avatar answered Nov 01 '22 07:11

ptomato