22

I have a pretty good knowledge of programming languages like C/C++, Java, Python. But they were all mostly learnt in a college / high school class room setting where the best user interface was a numbered menu. You know, the standard data structures, implementation of various algorithms, file handling and the like.

What I want to do now is to get into GUI programming. I am not sure if I am asking the right way, but I am looking at using the WIMP paradigm (windows icons menus pointers). I want to place buttons and forms. Event driven programming, I believe is the right word, where my application waits till the user clicks something, types something etc.

Given my background, where would be a good place to start? I am looking at the following requirements -

1> Preferably cross platform. 2> Lots of documentations, tutorials, and if possible sample code that I can learn off of 3> A good GUI builder tool, where I can drag / drop stuff the way I want them to be displayed.

Any ideas or suggestions to get me started?

user16922
  • 221
  • 1
  • 2
  • 3
  • 7
    This question seems like exactly what I'd like to ask, yet the answers aren't what I'd expect. I would have thought there would be more information related to where to learn about the event-driven model, and how GUI code is organized (whether each window ends up being its own class and then instantiated, or if not, how do you organize the menus and controls for separate windows), etc.. But, I don't want to create a duplicate question either. – romandas Nov 19 '09 at 17:28

11 Answers11

5

I'l try the book About face: Essential of User Interface Design, its centered on design practices for UI as well as designing taking into account the user goals, that is, what the user wants to acomplish trying to get you away for the "developer GUI design".

It also reviews some history about GUI design from Microsoft, Apple and other companys. Things like defaults for MacOsX (where the accept and cancel buttons are usually located, etc) as well and the whys beneath that.

I'll also look up the Office 2007 UI Design Guidelines for Microsoft as it's probably "gonna be a thing".

Jorge Córdoba
  • 51,063
  • 11
  • 80
  • 130
4

Shoes for Ruby is cross platform, very easy, and is a brief introduction to building a window and handling events that happen in it. fun too :)

easeout
  • 8,665
  • 5
  • 43
  • 51
3

You're looking for Qt. It's a cross-platform C++ GUI framework, and it includes everything you asked for and more.

It's free for open-source projects to use, provided you're using the GPL.

Branan
  • 1,819
  • 15
  • 21
3

There is a great deal of language and UI framework specific resources available for people interested in building application UIs. However, before delving into specific technologies, there is much to be learned about Human-Computer Interaction and how it applies to user interface design. Some references to look at:

After researching what makes a good UI, it is time to explore how:

Of course there are many options out there, including QT, Fltk and SWT

Ryan Delucchi
  • 7,718
  • 13
  • 48
  • 60
1

I was thinking exactly the same thing recently. Qt seems like a good cross platform GUI framework, and Python seems like a good language to work in.

So PyQt is my (uneducated) suggestion. It does include a drag and drop GUI design tool.

John Carter
  • 53,924
  • 26
  • 111
  • 144
1

Take a look at Glade and Gtk. Both are really easy to use. Glade is the GUI builder, and Gtk the toolkit. It's both cross platform and cross language. You can load the Glade files in almost any language. Here is a Glade/Gtk tutorial

Peter Stuifzand
  • 5,084
  • 1
  • 23
  • 28
0

Netbeans is cross platform, and while it is centered towards Java developers, you can easily install addons to work with C/C++, Ruby, etc. I use it for developing Swing GUI programs because it has a very simple interface for simple drag and drop GUI creation. There is a lot of good documentation on developing with Java Swing, and I'm sure there is plenty of documentation on using Netbeans also.

0

I would look into C# .NET development and its WinForms API. It's much easier to program GUI desktop apps for Windows with that than with the Win32 API. You can always ease into Win32 API stuff later, if it's still relevant.

For cross-platform solutions, look into Gtk+, perhaps PyGtk. Another good one is WxWidgets.

If you want to get really funky, check out Shoes for Ruby.

Parappa
  • 7,566
  • 3
  • 34
  • 38
0

Many years ago, I made the quickest progress in this area using Visual Basic. I assume it's still dead easy to pick up and the code/run/debug cycle is insanely productive and you'll learn a lotta useful stuff fast. Tons of documentation, and all the other goodies you want...

Scott Evernden
  • 39,136
  • 15
  • 78
  • 84
0

Seeing as you already have knowledge of Java you should check out the Swing API here, it provides a pretty powerful set of packages that can be used to create complex GUI's. Moreover, its cross platform, there's tons of documentation and it can be used with the Netbeans IDE.

Ed Brown
  • 417
  • 3
  • 10
0

Java's Swing API is cross platform and relatively simple, and NetBeans is a good GUI builder.

perimosocordiae
  • 17,287
  • 14
  • 60
  • 76