1、QT 只显示设置的两个矩形区域
void MainWindow::paintEvent(QPaintEvent* event)
{
QPainter painter(this);
QRegion region;
QRect rects[2];
rects[0]=QRect(0,0,100,100);
rects[1]=QRect(300,300,100,100);
region.setRects(rects,2);
painter.setClipping(true);
painter.setClipRegion(region);
painter.drawLine(QPoint(0,0),QPoint(400,400));
painter.drawLine(QPoint(400,0),QPoint(0,400));
}
2、QT 两矩形xored后环内显示
void MainWindow::paintEvent(QPaintEvent* event)
{
QPainter painter(this);
QRegion region;
QRect rects[1];
rects[0]=QRect(0,0,400,400);
region.setRects(rects,1);
QRegion r1;
rects[0]=QRect(100,100,200,200);
r1.setRects(rects,1);
QRegion r2=region.xored(r1);
painter.setClipping(true);
painter.setClipRegion(r2);
painter.drawLine(QPoint(0,0),QPoint(400,400));
painter.drawLine(QPoint(400,0),QPoint(0,400));
painter.setClipping(false);
}