• 大小: 942KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-24
  • 语言: 其他
  • 标签: Qt  

资源简介

基于QT QGraphicsView Framework的绘图软件,可以绘制常见的直线、矩形、圆、椭圆等图形,可以实现图形的交互如碰撞检测、控制手柄拖动缩放、撤销重做等。还有属性树的用法

资源截图

代码片段和文件信息

#include “commands.h“
#include 
MoveShapeCommand::MoveShapeCommand(QGraphicsScene *graphicsScene const QPointF &delta QUndoCommand *parent)
    : QUndoCommand(parent)
{
    myItem = 0;
    myItems = graphicsScene->selectedItems();
    myGraphicsScene = graphicsScene;
    myDelta = delta;
    bMoved = true;
}

MoveShapeCommand::MoveShapeCommand(QGraphicsItem * item const QPointF &delta QUndoCommand *parent)
    : QUndoCommand(parent)
{
    myGraphicsScene = 0;
    myItem = item;
    myDelta = delta;
    bMoved = true;
}

//! [2]
void MoveShapeCommand::undo()
{
    if ( myItem )
        myItem->moveBy(-myDelta.x()-myDelta.y());
    else if( myItems.count() > 0 ){
        foreach (QGraphicsItem *item myItems) {
           item->moveBy(-myDelta.x()-myDelta.y());
        }
    }
    setText(Qobject::tr(“Undo Move %1%2“)
        .arg(-myDelta.x()).arg(-myDelta.y()));
    bMoved = false;
}
//! [2]

//! [3]
void MoveShapeCommand::redo()
{
    if ( !bMoved ){
        if ( myItem ){
            myItem->moveBy(myDelta.x()myDelta.y());
            myItem->scene()->update();
        }else if( myItems.count() > 0 ){
            foreach (QGraphicsItem *item myItems) {
               item->moveBy(myDelta.x()myDelta.y());
            }
            myGraphicsScene->update();
        }
    }
    setText(Qobject::tr(“Redo Move %1%2“)
        .arg(myDelta.x()).arg(myDelta.y()));
}
//! [3]
//! [4]
RemoveShapeCommand::RemoveShapeCommand(QGraphicsScene *scene QUndoCommand *parent)
    : QUndoCommand(parent)
{
    myGraphicsScene = scene;
    items = myGraphicsScene->selectedItems();
}

RemoveShapeCommand::~RemoveShapeCommand()
{

}
//! [4]

//! [5]
void RemoveShapeCommand::undo()
{
    foreach (QGraphicsItem *item items) {
        QGraphicsItemGroup *g = dynamic_cast(item->parentItem());
        if ( !g )
            myGraphicsScene->addItem(item);
    }
    myGraphicsScene->update();
    setText(Qobject::tr(“Undo Delete %1“).arg(items.count()));
}
//! [5]

//! [6]
void RemoveShapeCommand::redo()
{
    foreach (QGraphicsItem *item items) {
        QGraphicsItemGroup *g = dynamic_cast(item->parentItem());
        if ( !g )
            myGraphicsScene->removeItem(item);
    }
        setText(Qobject::tr(“Redo Delete %1“).arg(items.count()));
}
//! [6]

//! [7]
AddShapeCommand::AddShapeCommand(QGraphicsItem *item
                       QGraphicsScene *scene QUndoCommand *parent)
    : QUndoCommand(parent)
{
    static int itemCount = 0;

    myGraphicsScene = scene;
    myDiagramItem = item;
    initialPosition = item->pos();
    ++itemCount;
}
//! [7]

AddShapeCommand::~AddShapeCommand()
{
    if (!myDiagramItem->scene())
        delete myDiagramItem;
}

//! [8]
void AddShapeCommand::undo()
{
    myGraphicsScene->removeItem(myDiagramItem);
    myGraphicsScene->update();
    setText(Qobject::tr(“Undo Add %1“)
        .arg(createCommandString(myDiagramItem initialPosition)));

}
//! [8]

//! [9]
void AddSha

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    .......       242  2017-01-28 23:05  qdraw-master\.gitignore

    .......       813  2017-01-28 23:05  qdraw-master\app\app.pro

    .......      1427  2017-01-28 23:05  qdraw-master\app\app.qrc

    .......     10349  2017-01-28 23:05  qdraw-master\app\commands.cpp

    .......      3645  2017-01-28 23:05  qdraw-master\app\commands.h

    .......     17161  2017-01-28 23:05  qdraw-master\app\customproperty.cpp

    .......      3143  2017-01-28 23:05  qdraw-master\app\customproperty.h

    .......        50  2017-01-28 23:05  qdraw-master\app\document.cpp

    .......       108  2017-01-28 23:05  qdraw-master\app\document.h

    .......     41867  2017-01-28 23:05  qdraw-master\app\drawobj.cpp

    .......     12333  2017-01-28 23:05  qdraw-master\app\drawobj.h

    .......     11388  2017-01-28 23:05  qdraw-master\app\drawscene.cpp

    .......      2313  2017-01-28 23:05  qdraw-master\app\drawscene.h

    .......     16877  2017-01-28 23:05  qdraw-master\app\drawtool.cpp

    .......      2995  2017-01-28 23:05  qdraw-master\app\drawtool.h

    .......      9292  2017-01-28 23:05  qdraw-master\app\drawview.cpp

    .......      1338  2017-01-28 23:05  qdraw-master\app\drawview.h

    .......      2951  2017-01-28 23:05  qdraw-master\app\icons\align_all.png

    .......      1009  2017-01-28 23:05  qdraw-master\app\icons\align_bottom.png

    .......      1229  2017-01-28 23:05  qdraw-master\app\icons\align_hcenter.png

    .......      2256  2017-01-28 23:05  qdraw-master\app\icons\align_height.png

    .......      1505  2017-01-28 23:05  qdraw-master\app\icons\align_height.svg

    .......       355  2017-01-28 23:05  qdraw-master\app\icons\align_horzeven.png

    .......      1192  2017-01-28 23:05  qdraw-master\app\icons\align_left.png

    .......      1141  2017-01-28 23:05  qdraw-master\app\icons\align_right.png

    .......      1199  2017-01-28 23:05  qdraw-master\app\icons\align_top.png

    .......      1223  2017-01-28 23:05  qdraw-master\app\icons\align_vcenter.png

    .......       344  2017-01-28 23:05  qdraw-master\app\icons\align_verteven.png

    .......      2001  2017-01-28 23:05  qdraw-master\app\icons\align_width.png

    .......      1777  2017-01-28 23:05  qdraw-master\app\icons\align_width.svg

............此处省略325个文件信息

评论

共有 条评论