本文整理汇总了C++中VisualNode::x方法的典型用法代码示例。如果您正苦于以下问题:C++ VisualNode::x方法的具体用法?C++ VisualNode::x怎么用?C++ VisualNode::x使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VisualNode
的用法示例。
在下文中一共展示了VisualNode::x方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UpdateSubtreeExtents
void VisualSubtreeHighlighter::UpdateSubtreeExtents()
{
if(!m_node || !isVisible())
return;
prepareGeometryChange();
QRectF bb = m_node->boundingRect();
float xMin = bb.left() + m_node->x();
float xMax = bb.right() + m_node->x();
float yMin = bb.top() + m_node->y();
float yMax = bb.bottom() + m_node->y();
QQueue<VisualNode*> queue;
queue.enqueue(m_node);
while(!queue.empty())
{
VisualNode* node = queue.dequeue();
if(node->IsCollapsed() || node->IsLeaf())
{
QRectF bb = node->boundingRect();
if(bb.left() + node->x() < xMin)
xMin = bb.left() + node->x();
if(bb.right() + node->x() > xMax)
xMax = bb.right() + node->x();
if(bb.top() + node->y() < yMin)
yMin = bb.top() + node->y();
if(bb.bottom() + node->y() > yMax)
yMax = bb.bottom() + node->y();
}
else // not collapsed and not a leaf node
{
foreach(VisualNode* child, node->GetChildren())
queue.enqueue(child);
}
}
m_extents = QRectF(xMin - HIGHLIGHTER_OFFSET, yMin - HIGHLIGHTER_OFFSET, (xMax-xMin) + 2*HIGHLIGHTER_OFFSET, (yMax-yMin) + 2*HIGHLIGHTER_OFFSET);
update();
}