QT4中的类QRegion实例

来源:互联网 发布:百度云账号淘宝怎么搜 编辑:程序博客网 时间:2024/04/30 07:11

例程:
#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QRegion>
class MyMainWindow:public QWidget
{
public:
MyMainWindow(QWidget *parent = 0);
private:
void paintEvent(QPaintEvent *);
QPainter *paint;
};
void MyMainWindow::paintEvent(QPaintEvent *) //paintEvent函数由系统自动调用,用不着我们人为的去调用。
{
QRegion r1(QRect(100, 100, 200, 80),QRegion::Ellipse); // r1: elliptic region
QRegion r2(QRect(100, 120, 90, 30)); // r2: rectangular region
QRegion r3 = r1.intersected(r2); // r3: intersection
paint=new QPainter;
paint->begin(this);
paint->setPen(QPen(Qt::blue,4,Qt::DashLine)); //设置画笔形式
paint->setBrush(QBrush(Qt::red,Qt::SolidPattern)); //设置画刷形式
paint->setClipRegion(r3); // paint clipped graphics
paint->drawRect(QRect(100,100,200,80));
paint->drawRect(QRect(100,120,90,30));
paint->end();
}
MyMainWindow::MyMainWindow(QWidget *parent):QWidget(parent)
{
setGeometry(100,100,300,300);
}
int main(int argc,char **argv)
{
QApplication a(argc,argv);
MyMainWindow w;
w.show();
return a.exec();
}

文章出处:DIY部落(http://www.diybl.com/course/3_program/c++/cppjs/20090825/171744.html)

原创粉丝点击