Reasons that I choose wxWidgets instead of Qt as GUI framework for my hobby projects

I had been using Delphi and VCL in my daily work and hobby projects for several years.
Recent years I gave up on Delphi/BCB for whatever reason and turned to C++ development for hobby projects. Yes, for hobby, I never had chance to use C++ in my daily work.
When comes to GUI project, I need a GUI framework written in C++.

My criterias on C++ GUI framework:

  1. Free. This is a must. And especially it should be free to be static linked. Thus MFC is not in my list. MFC is not in VC Express version.
  2. Open source. So I can read the code to learn and debug. Close source library is black box to me and I don't know how it works and may totally lose control on it.
  3. Decent GUI visual designer tool. Decent means that at least I should be able to visually design forms (not only dialogs but also any top level windows) with most common used components. In my opinion, GUI should be designed visually. Manually coding GUI is boring and error prone. I would like to put my time and energy on coding core logic instead of UI. With this criterion, a lot of open source frameworks are kicked out from my list.
  4. Decent application size. A notepad application with 10M runtime DLLs is not a good idea. This may be not an issue for large project. But it's important to me because my project is usually small or medium scale, never be very large.
  5. Easy to install/config/build. I have the impression (maybe wrong) that open source libraries are always difficult to build. A lot of hack, a lot of hardcore changes. I don't want to be hardcore, I only want to use the code, that's all.
  6. Easy to integrate with any common used compilers and IDEs. My primary IDE is VC 2008 Express and I really love it. If I'm forced to use other IDE, I may lose efficiency. Also I need to use MinGW GCC to test C++ syntax. So the framework should be at least working in VC Express and GCC.
  7. Good quality. I'm not expecting a bug free library, I'm also not accepting too buggy library.
  8. Documentation. I'm not expecting a document which is as comprehensive as MSDN, but an API document is a must.
  9. Community support. Whenever I have a problem, I need a place to ask and get response in reasonable time.
  10. User base. Some non-trivial companies should have applications built on the framework to show the trustworthy of the library.
  11. Cross platform. This is a bonus but I would be very happy to have it.
  12. Unicode support. Another bonus that I'm happy to have.

With these criteria, I found only wxWidgets and Qt are considerable, since other libraries, such as GTKmm, Ultimate++, VCF, SmartWin, can hardly meet all criterias. And both wxWidgets and Qt had near 20 years development so they should be mature enough.

At first I only tried Qt, because as far as I know, wxWidgets is quite MFC like and Qt is better in high level design. I will consider Qt as VCL like and I love VCL.

But after a while I want to give up Qt because it fails in several points,

After gave up on Qt, I tried wxWidgets and found I really like it in several points,

Summary:

This blog explains why I choose wxWidgets instead of Qt. That's all. I didn't recommend wxWidgets over Qt, and I would not say wxWidgets is better than Qt. I only chose the proper library that meets my requirements. If you are looking for a GUI library, make the decision on your opinion because you may have different requirements.
 

Write a comment

  • Required fields are marked with *
  • Security Code is case sensitive, 'A' is different with 'a'.

If you have trouble reading the code, click on the code itself to generate a new random code.
Security Code: