-
大小: 16KB文件類型: .rar金幣: 2下載: 0 次發布日期: 2021-05-26
- 語言: 其他
- 標簽: Diagram??流程圖??graphicsview??
資源簡介
qt 繪制流程圖示例程序,實現了節點的添加,以及節點之間連續操作

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?“diagramwindow.h“
#include?“link.h“
#include?“node.h“
#include?“propertiesdialog.h“
DiagramWindow::DiagramWindow()
{
????scene?=?new?QGraphicsScene(0?0?600?500);
????view?=?new?QGraphicsView;
????view->setScene(scene);
????view->setDragMode(QGraphicsView::RubberBandDrag);
????view->setRenderHints(QPainter::Antialiasing
?????????????????????????|?QPainter::TextAntialiasing);
????view->setContextMenuPolicy(Qt::ActionsContextMenu);
????setCentralWidget(view);
????minZ?=?0;
????maxZ?=?0;
????seqNumber?=?0;
????createActions();
????createMenus();
????createToolBars();
????connect(scene?SIGNAL(selectionchanged())
????????????this?SLOT(updateActions()));
????setWindowtitle(tr(“Diagram“));
????updateActions();
}
void?DiagramWindow::addNode()
{
????Node?*node?=?new?Node;
????node->setText(tr(“Node?%1“).arg(seqNumber?+?1));
????setupNode(node);
}
void?DiagramWindow::addlink()
{
????NodePair?nodes?=?selectedNodePair();
????if?(nodes?==?NodePair())
????????return;
????link?*link?=?new?link(nodes.first?nodes.second);
????scene->addItem(link);
}
void?DiagramWindow::del()
{
????QList?items?=?scene->selectedItems();
????QMutableListIterator?i(items);
????while?(i.hasNext())
????{
????????link?*link?=?dynamic_castnk?*>(i.next());
????????if?(link)
????????{
????????????delete?link;
????????????i.remove();
????????}
????}
????qDeleteAll(items);
}
void?DiagramWindow::cut()
{
????Node?*node?=?selectedNode();
????if?(!node)
????????return;
????copy();
????delete?node;
}
void?DiagramWindow::copy()
{
????Node?*node?=?selectedNode();
????if?(!node)
????????return;
????QString?str?=?QString(“Node?%1?%2?%3?%4“)
??????????????????.arg(node->textColor().name())
??????????????????.arg(node->outlineColor().name())
??????????????????.arg(node->backgroundColor().name())
??????????????????.arg(node->text());
????QApplication::clipboard()->setText(str);
}
void?DiagramWindow::paste()
{
????QString?str?=?QApplication::clipboard()->text();
????QStringList?parts?=?str.split(“?“);
????if?(parts.count()?>=?5?&&?parts.first()?==?“Node“)
????{
????????Node?*node?=?new?Node;
????????node->setText(QStringList(parts.mid(4)).join(“?“));
????????node->setTextColor(QColor(parts[1]));
????????node->setOutlineColor(QColor(parts[2]));
????????node->setBackgroundColor(QColor(parts[3]));
????????setupNode(node);
????}
}
void?DiagramWindow::bringToFront()
{
????++maxZ;
????setZValue(maxZ);
}
void?DiagramWindow::sendToBack()
{
????--minZ;
????setZValue(minZ);
}
void?DiagramWindow::properties()
{
????Node?*node?=?selectedNode();
????link?*link?=?selectedlink();
????if?(node)
????{
????????PropertiesDialog?dialog(node?this);
????????dialog.exec();
????}
????else?if?(link)
????{
????????QColor?color?=?QColorDialog::getColor(link->color()?this);
????????if?(color.isValid())
????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1212??2019-10-22?08:25??Diagram\Diagram.pro
?????文件??????43815??2019-10-30?17:17??Diagram\Diagram.pro.user
?????文件???????8239??2019-10-21?14:24??Diagram\diagramwindow.cpp
?????文件???????1254??2008-01-09?08:43??Diagram\diagramwindow.h
?????文件????????293??2008-01-09?08:43??Diagram\images\bringtofront.png
?????文件???????1304??2008-01-09?08:43??Diagram\images\colors.png
?????文件????????485??2008-01-09?08:43??Diagram\images\copy.png
?????文件????????537??2008-01-09?08:43??Diagram\images\cut.png
?????文件????????833??2008-01-09?08:43??Diagram\images\delete.png
?????文件????????208??2008-01-09?08:43??Diagram\images\li
?????文件????????212??2008-01-09?08:43??Diagram\images\node.png
?????文件????????907??2008-01-09?08:43??Diagram\images\paste.png
?????文件????????318??2008-01-09?08:43??Diagram\images\sendtoback.png
?????文件???????1769??2019-10-21?21:19??Diagram\li
?????文件????????599??2019-10-21?21:19??Diagram\li
?????文件????????189??2019-10-22?08:23??Diagram\main.cpp
?????文件???????3249??2019-10-21?14:01??Diagram\node.cpp
?????文件???????1221??2019-10-21?13:53??Diagram\node.h
?????文件???????1788??2019-10-21?14:17??Diagram\propertiesdialog.cpp
?????文件????????686??2019-10-21?14:16??Diagram\propertiesdialog.h
?????文件???????7977??2019-10-21?14:16??Diagram\propertiesdialog.ui
?????文件????????353??2008-01-09?08:43??Diagram\resources.qrc
?????目錄??????????0??2019-11-03?07:11??Diagram\images
?????目錄??????????0??2019-11-03?07:11??Diagram
-----------?---------??----------?-----??----
????????????????77448????????????????????24
- 上一篇:調頻發射機通信課程設計
- 下一篇:《TCP/IP協議族》(第4版)部分習題解答
評論
共有 條評論