views:

33

answers:

3

Hi,

I developed a command line application, whose binary runs in Linux, Windows and Mac OSX. It reads some text input files, but I realize that some special users can not handle this. I would then like to build some kind of graphical interface, where the user only finds buttons and scroll bars for selecting the input parameters, a big "run" button, and then it reads the output of the program and makes some figures.

I also need that everything gets finally packed in a single file, which uses only static libraries, so the user just needs to copy the file to his/her machine and run it.

I would like to know what is the best open source and multi-platform approach to do this. 10 years ago I played a bit with something similar on DEC machines, so I guess that nowadays the situation has probably improved a bit.

P.S. For designing the graphical interface, I am looking for a graphical approach, where you add buttons, scroll bars with the mouse P.S. 2: the interface is really simple, just need less than 10 buttons, 5 text fields and 2 scrolla bars

Thanks

+1  A: 

For advanced UIs, I would generally recommend writing a different UI for each platform (since each platform has its human inteface guidelines). However, is this going to be a simple UI, then one of the cross-platform UIs.

You also didn't mention what language you want to use.

Lastly your "1 exe file" is a bit of a myth - it applies only to Windows. On MacOSX, we use the magic app folders, so it doesn't matter how many files comprise your app, you still get drag-n-drop installs.

Look into GTK+ which originated on Linux, or wxWidgets.

Frank Krueger
re: 1 exe file is a myth: no, it's not. While MacOSX files are typically a magic app folder it's quite acceptable to have a single file that is the whole app. From the users perspective it's exactly the same -- a single file you can drag and drop wherever you want. Tcl makes this possible with an embedded virtual filesystem that works cross-platform.
Bryan Oakley
A: 

For a cross platform UI, you can use GTK (if using C) or QT (if using C++).

Macmade
+1  A: 

Tcl/Tk is a perfect choice. No other language provides as good of a deployment solution. You can create a virtual filesystem that has your application along with icons, sound files, etc into a single file for each platform (called a 'starpack'). You can even include binary executables and libraries, though those have to be copied to the actual filesystem at runtime to be used.

You also have the option of a two-file deployment -- a platform-specific runtime called 'tclkit', and a platform-independent application file called a 'starkit'. The one starkit will work on all platforms without recompiling, rebundling, etc. It can even have platform-specific parts built-inside and chosen at runtime.

A professional Tcl/Tk developer could do a front end to a command line program in a day without a graphical GUI design tool, easily. If you're new to tcl it will obviously take longer, but that is true of any language. The point being, Tk is remarkably easy to use and doesn't require a graphical GUI designer.

Bryan Oakley