Frankly, I'm a bit surprised that you seemingly never were in contact with one of the many popular widget libraries, offering the mentioned (btw similar) solutions to your problem. Some of the libraries also have more unified interfaces to different backends (also sqlite). To add another one, I'm using Trolltechs Qt (www.trolltech.com) library - mostly version 3 with my own bindings to sqlite3.
Micha --