1

The software's algorithms are all written in C.(gcc compiler). And I need some beautiful and friendly UI for this small software...But I have no idea what language and what library and what tool I should use. I need some idea from you guys. thanks indeed! If you can say it more specific, I will thank you more!

Josh Morrison
  • 7,488
  • 25
  • 67
  • 86
  • So you want suggestions on what language to write the GUI in? What is your target platform (Windows, Linux, OSX, Web...)? What does the program do? – beggs Nov 19 '10 at 03:12
  • MY Os is Mac OS X, I want it can run at least on Mac and Linux. If it can also run on Win, it would be nicer. Thanks. – Josh Morrison Nov 19 '10 at 03:16
  • You might want to check out http://stackoverflow.com/questions/2305563/what-cross-platform-gui-library-has-the-most-native-feel-for-each-platform – David Gelhar Nov 19 '10 at 03:33

2 Answers2

2

It would be better if you are more specific with your question and give more details about your software. Because designing a UI interface depends on a lot of factors.

I am listing some below for your reference:

  1. On what system are people going to use it? (Windows, Linux etc)
  2. Users are novice users or advanced users (You can decide on a CLI for advanced users and more detailed colourful GUI for novice users who need a lot of help)
  3. Do you have any specific requirements like the GUI should be light weight?

So, please determine the requirements first before deciding what language and what library you must use.

For starters, you can look at ncurses library in linux, MFC in Windows. I don't know much about Java, someone else must be able to help you on that.

All the best for your work!

Jay
  • 24,173
  • 25
  • 93
  • 141
  • 1 I am using Mac OS for development. I wish it can be run on Mac and Linux. If also WIN, it would be nicer. 2 The software is sort of small. So the UI is pretty easy and straightforward not much level. 3 No. light weight is not consideration in this phase. Thanks so much! – Josh Morrison Nov 19 '10 at 03:21
  • +1 good answer, having him decide and investigate instead of throwing around suggestions. I'd give you another +9 if I could. @Andy: take a look at wxWidgets, it's cross-platform if I'm not mistaken. – salezica Nov 19 '10 at 03:26
  • @SantiagoLezica wxWidgets is cross-platform, but also ugly – Rafe Kettler Nov 19 '10 at 04:08
2

Commonly used libraries for GUIs:

  • Tk which was written in Tcl and has bindings for Python, Perl, Ruby, Lisp and a few others
  • GTK, which is written in C (so you could write your GUI in C) and has bindings for most languages under the sun
  • Qt, which is written in C++ and also has a number of bindings

These are the "big three" for cross-platform toolkits (I know some will disagree). They have their advantages and disadvantages: Tk looks good on some platforms but not others, and there aren't too many bindings for it, GTK looks great on Gnome desktops but so-so elsewhere, and Qt looks good in KDE but okay elsewhere.

You have to ask yourself a few questions: what platform will you be deploying to? What kind of functionality do you need? What languages are you most comfortable writing the interface with?

I'd recommend that whatever language you choose, choose a scripting language of some sort. It's far easier to create interfaces using scripting languages IMO (though Qt makes C++ interface design fairly painless). I'd also recommend you pick a language that will be available on your platform with as few dependencies as possible (so for Linux, Python or Perl would be a good choice).

Rafe Kettler
  • 75,757
  • 21
  • 156
  • 151