are the toolkits that you were talking about (Qt, FLTK, and wxWidget) all different compilers? |
No, Qt, FLTK, and wxWidget are all different GUI toolkits (or GUI frameworks)
In all three cases, they are class based, as is the Microsoft specific MFC.
From C++ you can also use C-APIs, like GTK+ and the GUI parts of WIN32 (the latter is Windows specific, and while there is a WIN32 port of the former, I have not seen much evidence of its use, esp. cf. Qt, FLTK, and wxWidget)
Will i need to have a new compiler to work with GUI? |
No. I believe that all three work with all compliant compilers.
I have all three tookits on my Windows machine working with both gcc and vc++, and on a Ubuntu machine using gcc. And as an IDE I'm using both Visual Studio (Windows only) and CodeLite.
(Both IDEs -- and others like Code::Blocks -- know how to handle Qt projects, when the Qt toolkit, etc. is installed. See below re Qt moc)
Will i still be programming with C++, because on the Qt website it talks about "learning Qt". |
Qt is C++ based.
But when you build a Qt project you have an extra build step, which uses their "meta object compiler" (moc). This generates extra C++ code from .moc files. You then compile and link bother this generated C++ and your own.
(I'm only a beginner when it comes to Qt. So I am still learning my way round moc, etc. There is also qmake and .ui files to worry about, and other things.)
But all the libraries have their way of doing things, so you would also be expected to "Learn wxWidgets", "Learn FLTK", ... !
The first thing I do when investigating a new toolkit, code library, or SDK is check out the sample code. All the above toolkits provide a number of basic samples, plus code for some more involved apps.
Andy
P.S. One of the FLTK designers provides various additional examples on his "Cheat Page", if you want to get a feel of what it's capable of:
http://seriss.com/people/erco/fltk/
The information I've posted is from notes of my own recent investigation. I coded a small app in WTL (which I knew already) Qt, wxWidgets, and FLTK and then compared the code.
In the end I chose to go with FLTK as the app I am working on is small and has few additional requirements outside of the GUI and some standard C++ algorithmic code. FLTK isn't as pretty as the others, but it is the simplest for a basic little app.
Qt (and wxWidgets) are good if you have code that uses a lot of non-GUI system functionality, which would involve a lot of #ifdef-ing (or similar) if Qt hadn't abstracted things for you.