QGraphicsView框架实现画板
支持图形的绘制,移动与拖拽、放大缩小、旋转、复制粘贴、撤销重做;绘制图形包括矩形、多边形、椭圆、直线、曲线等
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 300 2018-10-18 20:36 qdraw.gitconfig
文件 73 2018-10-18 20:34 qdraw.gitdescription
文件 23 2018-10-18 20:36 qdraw.gitHEAD
文件 478 2018-10-18 20:34 qdraw.githooksapplypatch-msg.sample
文件 896 2018-10-18 20:34 qdraw.githookscommit-msg.sample
文件 3327 2018-10-18 20:34 qdraw.githooksfsmonitor-watchman.sample
文件 189 2018-10-18 20:34 qdraw.githookspost-update.sample
文件 424 2018-10-18 20:34 qdraw.githookspre-applypatch.sample
文件 1638 2018-10-18 20:34 qdraw.githookspre-commit.sample
文件 1348 2018-10-18 20:34 qdraw.githookspre-push.sample
文件 4898 2018-10-18 20:34 qdraw.githookspre-rebase.sample
文件 544 2018-10-18 20:34 qdraw.githookspre-receive.sample
文件 1492 2018-10-18 20:34 qdraw.githooksprepare-commit-msg.sample
文件 3610 2018-10-18 20:34 qdraw.githooksupdate.sample
文件 37606 2018-10-18 20:36 qdraw.gitindex
文件 240 2018-10-18 20:34 qdraw.gitinfoexclude
文件 177 2018-10-18 20:36 qdraw.gitlogsHEAD
文件 177 2018-10-18 20:36 qdraw.gitlogs
efsheadsmaster
文件 177 2018-10-18 20:36 qdraw.gitlogs
efs
emotesoriginHEAD
文件 26748 2018-10-18 20:36 qdraw.gitobjectspackpack-a6342ac8a643e228ef2dd9626ac1f3126d8417a1.idx
文件 651578 2018-10-18 20:36 qdraw.gitobjectspackpack-a6342ac8a643e228ef2dd9626ac1f3126d8417a1.pack
文件 114 2018-10-18 20:36 qdraw.gitpacked-refs
文件 41 2018-10-18 20:36 qdraw.git
efsheadsmaster
文件 32 2018-10-18 20:36 qdraw.git
efs
emotesoriginHEAD
文件 270 2018-10-18 20:36 qdraw.gitignore
文件 855 2018-10-18 20:36 qdrawappapp.pro
文件 1465 2018-10-18 20:36 qdrawappapp.qrc
文件 10778 2018-11-26 15:18 qdrawappcommands.cpp
文件 3787 2018-11-12 20:49 qdrawappcommands.h
文件 17723 2018-10-18 20:36 qdrawappcustomproperty.cpp
............此处省略367个文件信息
#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.gitconfig
文件 73 2018-10-18 20:34 qdraw.gitdesc
文件 23 2018-10-18 20:36 qdraw.gitHEAD
文件 478 2018-10-18 20:34 qdraw.githooksapplypatch-msg.sample
文件 896 2018-10-18 20:34 qdraw.githookscommit-msg.sample
文件 3327 2018-10-18 20:34 qdraw.githooksfsmonitor-watchman.sample
文件 189 2018-10-18 20:34 qdraw.githookspost-update.sample
文件 424 2018-10-18 20:34 qdraw.githookspre-applypatch.sample
文件 1638 2018-10-18 20:34 qdraw.githookspre-commit.sample
文件 1348 2018-10-18 20:34 qdraw.githookspre-push.sample
文件 4898 2018-10-18 20:34 qdraw.githookspre-reba
文件 544 2018-10-18 20:34 qdraw.githookspre-receive.sample
文件 1492 2018-10-18 20:34 qdraw.githooksprepare-commit-msg.sample
文件 3610 2018-10-18 20:34 qdraw.githooksupdate.sample
文件 37606 2018-10-18 20:36 qdraw.gitindex
文件 240 2018-10-18 20:34 qdraw.gitinfoexclude
文件 177 2018-10-18 20:36 qdraw.gitlogsHEAD
文件 177 2018-10-18 20:36 qdraw.gitlogs
efsheadsmaster
文件 177 2018-10-18 20:36 qdraw.gitlogs
efs
emotesoriginHEAD
文件 26748 2018-10-18 20:36 qdraw.gitob
文件 651578 2018-10-18 20:36 qdraw.gitob
文件 114 2018-10-18 20:36 qdraw.gitpacked-refs
文件 41 2018-10-18 20:36 qdraw.git
efsheadsmaster
文件 32 2018-10-18 20:36 qdraw.git
efs
emotesoriginHEAD
文件 270 2018-10-18 20:36 qdraw.gitignore
文件 855 2018-10-18 20:36 qdrawappapp.pro
文件 1465 2018-10-18 20:36 qdrawappapp.qrc
文件 10778 2018-11-26 15:18 qdrawappcommands.cpp
文件 3787 2018-11-12 20:49 qdrawappcommands.h
文件 17723 2018-10-18 20:36 qdrawappcustomproperty.cpp
............此处省略367个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)