12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #include "CMindView.h"
- #include "CRectItem.h"
- #include "CLineItem.h"
- #include "CTextItem.h"
- #include "CMind.h"
- #include <QMenu>
- #include <QContextMenuEvent>
- #include <QDebug>
- CMindView::CMindView(QWidget *parent) : QGraphicsView(new QGraphicsScene(), parent)
- {
- setRenderHints(QPainter::Antialiasing); // 抗锯齿
- testItems();
- }
- CMind *CMindView::mind() const
- {
- return m_mind;
- }
- void CMindView::setMind(CMind *mind)
- {
- m_mind = mind;
- refresh();
- }
- void CMindView::refresh() { }
- void CMindView::setALignment(CMindView::Alignment align)
- {
- m_align = align;
- }
- void CMindView::contextMenuEvent(QContextMenuEvent *event)
- {
- QMenu *menu = new QMenu();
- QAction *selectAction = menu->addAction("全选");
- connect(selectAction, &QAction::triggered, this, &CMindView::slotSelectAllNodes);
- QAction *clearAction = menu->addAction("清空");
- connect(clearAction, &QAction::triggered, this, &CMindView::slotClearAllNodes);
- if (m_mind != nullptr && m_mind->nodeList().count() <= 0) {
- QAction *root = menu->addAction("创建根节点");
- connect(root, &QAction::triggered, this, &CMindView::slotCreateRootNode);
- }
- menu->exec(event->globalPos());
- QGraphicsView::contextMenuEvent(event);
- }
- void CMindView::slotCreateRootNode()
- {
- qDebug() << __FUNCTION__ << __LINE__ << endl;
- }
- void CMindView::slotClearAllNodes()
- {
- qDebug() << __FUNCTION__ << __LINE__ << endl;
- }
- void CMindView::slotSelectAllNodes()
- {
- qDebug() << __FUNCTION__ << __LINE__ << endl;
- }
- void CMindView::testItems()
- {
- CRectItem *r = new CRectItem(QRectF(0, 0, 100, 100));
- scene()->addItem(r);
- CLineItem *l = new CLineItem(QPointF(-100, -100), QPointF(50, 50));
- scene()->addItem(l);
- l->setFlags(QGraphicsItem::ItemIsMovable);
- l->setLineType(CLineItem::CurveToLine);
- CTextItem *t = new CTextItem("test", QPoint(0, 0));
- scene()->addItem(t);
- }
|