Why don't you use a QGraphicsScene and override the paintBackground() member to paint your board? The pieces and whatnot are placed in a layer on top of the background, and can be moved independently, or even animated.

Basically, you're talking about reimplementing that class anyway, and it provides a great deal more than what you've described in addition to addressing your current problem.