views:

810

answers:

6

Hello. Could anybody please tell me which is the best software to do GUI programming in Linux and some books for it?

+5  A: 

Take a look at Qt (www.trolltech.com). In my opinion the best method to create a GUI (especially Qt supports the "Signals and Slots"-princip).

You can use it in C++, Java and Python and it's also platform independent (if you decide to port your program also to Windows or MacOS X). The documentation is really good, there are many many tutorials, so you even don't need any book.

Berschi
+2  A: 

I second the suggestion to try Qt. You might also want to see these other Stack Overflow questions

Paul Dixon
+5  A: 

I also vote for Qt.
Some advantage:

  • It is not only for Linux but multi platform. So if you want sometime to port your application to Windows, Mac or Mobile devices you can do it with minimal effort.
  • It has a huge class library supporting xml, opengl, and many other often used tools (platform independently)
  • Since version 4.5 it has GPL, LGPL and commercial licenses which means you can use it in your commercial software without paying any fee and forced to open your code.
  • Qt improves very fast. Nokia has just bought it from Trolltech and there is a huge effort to make it used more widely.
  • Qt has a very good IDE called Qt Creator. It has many useful features and also platform independent. You can debug your code in that.
  • Although I use Qt only with c++ but as far as a know there is Java and Python binding.

But there are other possibilities for linux gui programming:

And I guess many more.

Vereb
You should add GTK+ to your list, as it is the second major player in X11 GUI development next to QT!
ypnos
@ypnos: yeah right, GTK+ was missing in this whole post. (+1) But it's called Qt, not QT ;)
Berschi
+2  A: 

Instead of paraphrasing the author of the article, I warmly recommend to read Linux GUI Application Development for Windows Programmers.

Even if this article is a bit old now, most of the tools and languages it covers are still there today and the expressed opinions are not that much outdated. Tools are evaluated against some interesting criteria (yours might of course be different) and you'll find the results in this comparison matrix.

I'm not saying you should take the content of this article "as is" but it's a very good starting point and you could use a similar approach or methodology to find a toolkit/language/tool that'll suit your needs.

Pascal Thivent
+1  A: 

As mentioned at @Vereb answer, the list is missing gtk (www.gtk.org).

On http://www.gtk.org/documentation.html you see a lot of tutorials. The toolkit has bindings for many different languages (http://www.gtk.org/language-bindings.html) and most of those bindings have translated the basic tutorial to that language.

I really like that toolkit - I tried QT before, but back then, it lacked a good ruby-binding. Glade (http://glade.gnome.org/) helps in rapidly designing a GUI. Glade helps you create .xml-files with the GUI-design. These glade-files don't need to be preprocessed to be used (is this still necessary for QT?) so adjustments are immediately visible.

When you would use the Ruby-binding, Rugui (http://rugui.org/) is a Ruby on Rails like framework that helps you to develop bigger GUI-programs. Recently, it supports QT too, though.

davidbe
A: 

anjuta is a gr8 IDE for c++/gtk

OSaad