I tried to create a QgsRubberBand object with holes, but failed:
rb = QgsRubberBand(iface.mapCanvas(),True)
geom = QgsGeometry.fromWkt("POLYGON((0 0,4 0,4 3,0 3,0 0),(1 1,3 1,3 2,1 2,1 1))")
rb.setToGeometry(geom,None)
Looks like QgsRubberBand doesn't recognize holes at all. Is it a bug, or am I doing something wrong?