I've recently been doing quite a bit of programming for my co-op, developing software tools to control hardware for experiments in lab environments. I started with LabWindows/CVI, but after discovering ANSI-C interfaces from National Instruments to the libraries I need (notably VISA & DAQmx) I've been migrating to using QT/C++.
This first program of mine doesn't use anything from National Instruments - it's more of a post-process tool that translates data files into nice pictures. There were a few headaches interpreting the documentation, but with just a week of development while learning QT I've come up with a nice solution that is nearly complete and self-contained.
Most of my code was straight QT, but I did create my own class to do the processing, and I had it inherit the signal/slot behavior of QObjects. Coming from micro-controller C programming, I really appreciated how easily C++ made keeping track of things - and the QT documentation was sufficient though I spent a lot of time reading forums and mailing lists for actual examples of code because I'm not used to C++/QT methodologies.
With this project nearly complete, I'm preparing to get into a much more ambitious series of projects. I have much to learn yet, but with what I have learned so far I think I can overcome many of the challenges I'll see along the way. It should be fun.