资源简介

支持图形的绘制,移动与拖拽、放大缩小、旋转、复制粘贴、撤销重做;绘制图形包括矩形、多边形、椭圆、直线、曲线等

资源截图

代码片段和文件信息

#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

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

     文件        300  2018-10-18 20:36  qdraw\.git\config

     文件         73  2018-10-18 20:34  qdraw\.git\description

     文件         23  2018-10-18 20:36  qdraw\.git\HEAD

     文件        478  2018-10-18 20:34  qdraw\.git\hooks\applypatch-msg.sample

     文件        896  2018-10-18 20:34  qdraw\.git\hooks\commit-msg.sample

     文件       3327  2018-10-18 20:34  qdraw\.git\hooks\fsmonitor-watchman.sample

     文件        189  2018-10-18 20:34  qdraw\.git\hooks\post-update.sample

     文件        424  2018-10-18 20:34  qdraw\.git\hooks\pre-applypatch.sample

     文件       1638  2018-10-18 20:34  qdraw\.git\hooks\pre-commit.sample

     文件       1348  2018-10-18 20:34  qdraw\.git\hooks\pre-push.sample

     文件       4898  2018-10-18 20:34  qdraw\.git\hooks\pre-rebase.sample

     文件        544  2018-10-18 20:34  qdraw\.git\hooks\pre-receive.sample

     文件       1492  2018-10-18 20:34  qdraw\.git\hooks\prepare-commit-msg.sample

     文件       3610  2018-10-18 20:34  qdraw\.git\hooks\update.sample

     文件      37606  2018-10-18 20:36  qdraw\.git\index

     文件        240  2018-10-18 20:34  qdraw\.git\info\exclude

     文件        177  2018-10-18 20:36  qdraw\.git\logs\HEAD

     文件        177  2018-10-18 20:36  qdraw\.git\logs\refs\heads\master

     文件        177  2018-10-18 20:36  qdraw\.git\logs\refs\remotes\origin\HEAD

     文件      26748  2018-10-18 20:36  qdraw\.git\objects\pack\pack-a6342ac8a643e228ef2dd9626ac1f3126d8417a1.idx

     文件     651578  2018-10-18 20:36  qdraw\.git\objects\pack\pack-a6342ac8a643e228ef2dd9626ac1f3126d8417a1.pack

     文件        114  2018-10-18 20:36  qdraw\.git\packed-refs

     文件         41  2018-10-18 20:36  qdraw\.git\refs\heads\master

     文件         32  2018-10-18 20:36  qdraw\.git\refs\remotes\origin\HEAD

     文件        270  2018-10-18 20:36  qdraw\.gitignore

     文件        855  2018-10-18 20:36  qdraw\app\app.pro

     文件       1465  2018-10-18 20:36  qdraw\app\app.qrc

     文件      10778  2018-11-26 15:18  qdraw\app\commands.cpp

     文件       3787  2018-11-12 20:49  qdraw\app\commands.h

     文件      17723  2018-10-18 20:36  qdraw\app\customproperty.cpp

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

评论

共有 条评论