Qt学习例子10——Compsegraphicsitem

Compsegraphicsitem工程主要是介绍QGraphicsItem的应用,用于组织绘图结构,代码如下:

 

#include <QtGui/QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QGraphicsEllipseItem>
QGraphicsItem *addSmiley() {
    QPen thickPen(Qt::black);
    thickPen.setWidth(2);
    // add face
    QGraphicsEllipseItem *face = new QGraphicsEllipseItem(QRect(-50, -50, 100, 100));
    face->setPen(Qt::NoPen);
    face->setBrush(Qt::yellow);
   
    // enter your code here
    // add eyes
    QGraphicsEllipseItem *leftEye = new QGraphicsEllipseItem(QRect(-21, -37, 12, 24), face);
    leftEye->setPen(QPen(Qt::black));
    leftEye->setBrush(Qt::white);
    QGraphicsEllipseItem *leftEyeBall = new QGraphicsEllipseItem(QRect(-16.5, -26.5, 3, 3),leftEye);
    leftEyeBall->setPen(QPen(Qt::black));
    leftEyeBall->setBrush(Qt::black);
    QGraphicsEllipseItem *rightEye = new QGraphicsEllipseItem(QRect(9, -37, 12, 24), face);
    rightEye->setPen(QPen(Qt::black));
    rightEye->setBrush(Qt::white);
    QGraphicsEllipseItem *rightEyeBall = new QGraphicsEllipseItem(QRect(14.5, -26.5, 3, 3),rightEye);
    rightEyeBall->setPen(QPen(Qt::black));
    rightEyeBall->setBrush(Qt::black);
    // add smile
    QPainterPath path;
    path.arcMoveTo(QRectF(-33,-15,66,50),0);
    path.arcTo(QRectF(-33,-15,66,50),-0,-180);
    QGraphicsPathItem *smile=new QGraphicsPathItem(path,face);
    //QGraphicsPathItem *smile=new QGraphicsPathItem(face);
    smile->setPen(QPen(Qt::red));
    return face;
}
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QGraphicsView w;
    QGraphicsScene scene;
    w.setScene(&scene);
    scene.addItem(addSmiley());
    w.setRenderHint(QPainter::Antialiasing);
    w.show();
    return a.exec();
}

 

代码是依照此图设计的:

 

 
 

 

Qt学习例子10鈥斺擟ompsegraphicsitem

程序运行的效果如下:

Qt学习例子10鈥斺擟ompsegraphicsitem

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值