-   Programming (
-   -   gtk / qt - which path to choose (

niels.horn 10-29-2007 02:07 PM

gtk / qt - which path to choose

For starters: I don't want to start and endless discussion, just need some advice :)

I have an idea for a program I want to write myself, as none of the available packages does exactly what I need.
In the past I have worked as a professional developer, writing in all kinds of languages, from assembler to COBOL, C, Visual Basic and some others. I worked on very technical projects (printer-drivers) and financial acounting systems - about everything you can imagine.
But I have zero programming experience on Linux, apart from some quite complex shell scripts.

Now I want to start this project that needs to have a graphical interface so that it'll be simple to use (for my wife and children).
I will need to access a database (probably mysql, to keep it simple) and read / modify binary files on my drive.

I understand that - apart from writing a web-based solution using PHP or Perl - I can choose to use GTK or QT.
I don't want to learn how to write "Hello World" programs and want to start producing results as fast as possible.
I also need a reasonably simple to learn IDE and something stable...

Based on all these facts, what do you suggest?

Thanks in advance!

b0uncer 10-29-2007 02:17 PM

Nowadays people often have both libraries installed, so it's not that big a deal, but anyway I personally like programs (that sometimes even seem to pop up somewhere) in which you can select during build time what ui toolkit to use (for example gtk or qt, but there are other possibilities as well - those two are just the most massive ones). It's portability if you ask me. If you can, you should probably even keep the program core separated from the UI, so later the user interface can be made better without touching the program's code code. Or you can have several alternative user interfaces to it. And if possible, have the core program (if it makes any sense without a gui) run in "text mode" so it can be run without a gui if needed..

If you take a look at Gnome's or KDE's site, they'll offer you some IDEs..and a Google search will bring you to some alternatives I guess. But I still recommend you to try them first, if possible, because (just as with distributions) different people like different things, so others can't necessarily tell you the "best IDE" to use.

niels.horn 10-29-2007 06:10 PM

That would be ideal indeed - complete separation of code and user interface.
But I'm not sure if I will achieve this with my first Linux program.

I have been thinking of at least separating all functions in a library so that I later can build a web-interface without rewriting everything.

I'll do some Googleing on IDEs etc...

graemef 10-29-2007 06:40 PM

There's a sticky thread on IDE's here

I agree it is best to try and keep the interface separate from the functionality but it doesn't always turn out like that on the first version!

Qt or GTK? this comes down to personal preference, mine is towards Qt, because I prefer to code in C++ (although there are GTK bindings for C++, Qt is coded in C++) Also Qt provides cross platform support and good i18n. I use Kdevelop (under gnome) and QDevelop (under windows).

niels.horn 10-29-2007 09:24 PM

In the end, it's always a personal preference ;-)
Thanks for the link to the sticky thread - I'll take a look.

I am an old-fashioned C programmer, not much into C++
I18N is important to me, as I am a Dutch guy, working in Brazil using English as my preferred form of communication.
You can imagine how I suffer with international settings in programs...

For the moment, I am writing the main functions in separate modules that afterwards can be uses from Qt, GTK or anything else...

By the way, I am convinced that software = information and information should be free, so whenever my program reaches a mature stage, it will be freely available.
I cannot release too many details yet, as the project is still developing.

Thanks for the help for now!

All times are GMT -5. The time now is 12:41 PM.