{
bRgnSet=false;
quit->setGeometry(75,75,30,30);
setGeometry(0, 0, 400, 400);
connect(quit, SIGNAL(clicked()), this, SLOT(ButtonPressed()));
m_ptArr1
[1] = QPoint(380,
120);
m_ptArr1
[2] = QPoint(280,
350);
}
{
painter.setPen(Qt::blue);
painter.drawRect(100,100,200,200);
painter.drawEllipse(150,150,100,100);
if(bRgnSet)
{
painter.translate(50,50);
}
if(bRgnSet)
{
painter.drawEllipse(300,300,50,50);
painter.drawLine(0,0,400,400);
}
}
void myWidget::ButtonPressed()
{
//QRegion widgetRgn(54,39,200,200,QRegion::Ellipse);
bRgnSet = true;
rlPolygon.setPoints(5, m_ptArr1[0].x(), m_ptArr1[0].y(), m_ptArr1[1].x(), m_ptArr1[1].y(),
m_ptArr1[2].x(), m_ptArr1[2].y(), m_ptArr1[3].x(), m_ptArr1[3].y(), m_ptArr1[4].x(), m_ptArr1[4].y(),
m_ptArr1[5].x(), m_ptArr1[5].y());
setMask( rlPolygon );
//setMask( widgetRgn );
}
int main(int argc, char *argv[])
{
myWidget widget;
widget.show();
return app.exec();
}
myWidget::myWidget(QWidget *parent): QWidget(parent)
{
bRgnSet=false;
QPushButton *quit = new QPushButton("Click", this);
quit->setFont(QFont("Times", 18, QFont::Bold));
quit->setGeometry(75,75,30,30);
setGeometry(0, 0, 400, 400);
connect(quit, SIGNAL(clicked()), this, SLOT(ButtonPressed()));
m_ptArr1[0] = QPoint(50,50);
m_ptArr1[1] = QPoint(380,120);
m_ptArr1[2] = QPoint(280,350);
m_ptArr1[3] = QPoint(80,180);
m_ptArr1[4] = QPoint(50,50);
}
void myWidget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setPen(Qt::blue);
painter.drawRect(100,100,200,200);
painter.drawEllipse(150,150,100,100);
if(bRgnSet)
{
painter.translate(50,50);
}
if(bRgnSet)
{
painter.drawEllipse(300,300,50,50);
painter.drawLine(0,0,400,400);
}
}
void myWidget::ButtonPressed()
{
//QRegion widgetRgn(54,39,200,200,QRegion::Ellipse);
bRgnSet = true;
QPolygon rlPolygon;
rlPolygon.setPoints(5, m_ptArr1[0].x(), m_ptArr1[0].y(), m_ptArr1[1].x(), m_ptArr1[1].y(),
m_ptArr1[2].x(), m_ptArr1[2].y(), m_ptArr1[3].x(), m_ptArr1[3].y(), m_ptArr1[4].x(), m_ptArr1[4].y(),
m_ptArr1[5].x(), m_ptArr1[5].y());
QRegion rlRegion(rlPolygon);
setMask( rlPolygon );
//setMask( widgetRgn );
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
myWidget widget;
widget.show();
return app.exec();
}
To copy to clipboard, switch view to plain text mode
Bookmarks