本文整理汇总了C++中GEdge::item方法的典型用法代码示例。如果您正苦于以下问题:C++ GEdge::item方法的具体用法?C++ GEdge::item怎么用?C++ GEdge::item使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GEdge
的用法示例。
在下文中一共展示了GEdge::item方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: graph
/**
* Destructor for node - removes edge controls on incidient edges and disconnects item from scene
*/
GNode::~GNode()
{
graph()->invalidateRanking();
if ( ( isEdgeControl() || isEdgeLabel())
&& isNotNullP( firstPred())
&& isNotNullP( firstSucc())
&& isNotNullP( firstPred()->pred())
&& isNotNullP( firstSucc()->succ()))
{
GRAPH_ASSERTD( areEqP( firstPred()->style(), firstSucc()->style()),
"Different styles on the same edge");
GEdge *e = graph()->newEdge( firstPred()->pred(), firstSucc()->succ());
e->setStyle( firstPred()->style());
} else if ( isSimple())
{
QList< GNode *> nodes;
GEdge* edge;
Marker m = graph()->newMarker();
for ( edge = firstSucc(); isNotNullP( edge); edge = edge->nextSucc())
{
edge->item()->adjust();
GNode* succ = edge->succ();
while ( succ->isEdgeControl() || succ->isEdgeLabel())
{
assert( isNotNullP( succ->firstSucc()));
if ( succ->mark( m))
{
nodes << succ;
}
succ = succ->firstSucc()->succ();
}
}
for ( edge = firstPred(); isNotNullP( edge); edge = edge->nextPred())
{
if ( edge->isSelf()) // We've already processed this one in previous loop
continue;
edge->item()->adjust();
GNode* pred = edge->pred();
while ( pred->isEdgeControl() || pred->isEdgeLabel())
{
assert( isNotNullP( pred->firstPred()));
if ( pred->mark( m))
{
nodes << pred;
}
pred = pred->firstPred()->pred();
}
}
foreach ( GNode *n, nodes)
{
graph()->deleteNode( n);
}
graph()->freeMarker( m);
}
示例2: setEdgeStyle
/**
* Change edge's style
*/
void GGraph::setEdgeStyle( GStyle *style)
{
if ( sel_edges.isEmpty())
return;
GEdge* edge = sel_edges.first();
edge->setStyle( style);
edge->item()->adjust();
}
示例3: vedge
void
EdgeItem::keyPressEvent(QKeyEvent *event)
{
int key = event->key();
GNode *n = NULL;
GEdge *e = NULL;
VEdge vedge( edge());
NavSector sector = edge()->graph()->nodeNavigationSector();
GNode *curr_node = edge()->graph()->nodeInFocus();
NodeNav node_nav( curr_node, sector);
switch( key)
{
case Qt::Key_Up:
if ( isNotNullP( curr_node)
&& ( sector == LEFT_SECTOR || sector == RIGHT_SECTOR))
{
e = node_nav.edgeInDir( edge(), NAV_DIR_UP);
} else
{
n = vedge.nodeUp();
}
break;
case Qt::Key_Down:
if ( isNotNullP( curr_node)
&& ( sector == LEFT_SECTOR || sector == RIGHT_SECTOR) )
{
e = node_nav.edgeInDir( edge(), NAV_DIR_DOWN);
} else
{
n = vedge.nodeDown();
}
break;
case Qt::Key_Left:
if ( isNotNullP( curr_node)
&& ( sector == TOP_SECTOR || sector == BOTTOM_SECTOR) )
{
e = node_nav.edgeInDir( edge(), NAV_DIR_LEFT);
} else
{
n = vedge.nodeLeft();
}
break;
case Qt::Key_Right:
if ( isNotNullP( curr_node)
&& ( sector == TOP_SECTOR || sector == BOTTOM_SECTOR) )
{
e = node_nav.edgeInDir( edge(), NAV_DIR_RIGHT);
} else
{
n = vedge.nodeRight();
}
break;
default:
break;
}
if ( isNotNullP( n))
{
if ( edge()->graph()->view()->isContext())
{
edge()->graph()->emptySelection();
edge()->graph()->selectNode( n);
edge()->graph()->view()->findContext();
}
edge()->graph()->view()->focusOnNode( n, true);
scene()->clearFocus();
scene()->clearSelection();
n->item()->setFocus();
n->item()->setSelected( true);
} else if ( isNotNullP( e))
{
// Get focus on edge
scene()->clearFocus();
scene()->clearSelection();
e->item()->setFocus();
e->item()->setSelected( true);
}
//QGraphicsItem::keyPressEvent( event);
}