您的位置:首页 > 编程语言 > Qt开发

Qt学习例子12——Movablesimley

2011-04-08 13:16 369 查看
Movablesimley 工程在前面的基础上使节点可以移动

 
 
依据此图而作:

 


 

 

#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);

    // add eyes

    QGraphicsEllipseItem *leftEye = new QGraphicsEllipseItem(QRectF(-6, -12, 12, 24), face);

    leftEye->setPen(thickPen);

    leftEye->setBrush(Qt::white);

    leftEye->setPos(-15, -25);

    QGraphicsEllipseItem *rightEye = new QGraphicsEllipseItem(QRectF(-6, -12, 12, 24), face);

    rightEye->setPen(thickPen);

    rightEye->setBrush(Qt::white);

    rightEye->setPos(15, -25);

    // add smile

    QPainterPath smileArc;

    QRect rect(-33, -15, 66, 50);

    smileArc.arcMoveTo(rect, 0);

    smileArc.arcTo(rect, 0, -180);

    QGraphicsPathItem *smile = new QGraphicsPathItem(smileArc, face);

    smile->setPen(thickPen);

    return face;

}

int main(int argc, char *argv[])

{

    QApplication a(argc, argv);

    QGraphicsView w;

    QGraphicsScene scene;

    w.setScene(&scene);

    QGraphicsItem *smiley = addSmiley();

    scene.addItem(smiley);

    // enter your code here

    smiley->setFlag(QGraphicsItem::ItemIsMovable,true);

    w.setRenderHint(QPainter::Antialiasing);

    w.show();

    w.resize(600,400);

    return a.exec();

}

 

 

程序效果图:(笑脸可以移动的)

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt