You can do something like this:
this->setWindowFlags(Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_TranslucentBackground);
Then paint the background of your window in the paint event.
Note: As pointed out by Dmitry, in Qt4 there is a bug with minimizing and restoring the window.
Another option is to use QWidget::setMask(const QBitmap & bitmap), but this could be slow if the region is complex.