I couldn't find anything, but I want to make sure I didn't over look anything. In a widget's paintEvent, can you find out what you are painting to? ie a image, screen or printer?
You could try dynamic casting the paintDevice that you can get from QPainter to one of the possible subclasses of QPaintDevice, and checking if you get a non-0 result?