-
大小: 1.58MB文件類型: .rar金幣: 2下載: 1 次發(fā)布日期: 2023-11-20
- 語言: 其他
- 標(biāo)簽: Qt??QGraphicsVie??圖形框架??畫板??
資源簡介
支持圖形的繪制,移動與拖拽、放大縮小、旋轉(zhuǎn)、復(fù)制粘貼、撤銷重做;繪制圖形包括矩形、多邊形、橢圓、直線、曲線等
代碼片段和文件信息
#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\desc
?????文件?????????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-reba
?????文件????????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\ob
?????文件?????651578??2018-10-18?20:36??qdraw\.git\ob
?????文件????????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個文件信息
- 上一篇:UI圖標(biāo)盒子
- 下一篇:安達(dá)通 SureClient
評論
共有 條評論