QWidget *widget= new QWidget;
widget->installEventFilter(this); //给控件添加一个过滤器
bool MainWindow::eventFilter(QObject *watched, QEvent *event)
{
if(watched == widget&& event->type() == QEvent::Paint)
{
myDraw(widget);
}
else
return QMainWindow::eventFilter(watched,event);
}
void MainWindow::myDraw(QFrame* frame)
{
QPainterPath painterPathPath;
QRectF rect = QRectF(0, 0, frame->width(), frame->height());
painterPathPath.addRoundRect(rect, 40, 99);
QPolygon polygon= painterPathPath.toFillPolygon().toPolygon();
QRegion region(polygon);//指定一个裁剪区域
frame->setMask(region); 设置蒙版遮罩
}