I just decided to try switching over the front end of my project to Qt.  I was trying to make an immediate mode GUI before, but it turns out that’s actually a terrible idea.  There’s a couple of reasons why:

  1. major GUI toolkits have had a lot of people, time, and attention given to them, so they have many more features than you could hope to implement on your own.
  2. major GUI toolkits also have a tremendous amount of HCI wisdom and knowledge embedded in them.  If you use a good GUI toolkit, your program will probably be somewhat more usable even if you don’t know the first thing about usability.
  3. immediate mode GUIs scale poorly to more complicated interfaces.  They don’t have hierarchical layouts and more complex reactive functionality has to be hand coded.

I figured I should throw something up and warn people away from the siren’s call.