- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已将网格绘制成 qgraphicsscene
与 QLineF
的,您可以添加自定义 qgraphicsitems
作为网格中的块进入场景。我希望能够以不同的间距和索引重新绘制网格(索引只是较粗的线)。
我的问题是我不知道如何删除线条。我可以从场景中删除所有内容,但这需要太多的工作,因为我必须将所有自定义项目复制到一个数组中,然后将它们重新添加到场景中。我尝试将指针列表放入行中,但无法删除指针。我还考虑将这些行作为 child 添加到 qgraphicsitem
并删除该项目,这将导致删除所有行,但您不能为这些行设置父项。
如何从 QGraphicsScene
中删除特定的线路组件?
像这样:scene->removeItem(..pointer..);
我错误地捕捉到 scene->addItem(..)
的结果作为一个对象,然后将其存储为 &reference。当我将结果存储为指针时,我能够再次操作该项目。
最佳答案
您可以使用 QGraphicsItemGroup - http://qt-project.org/doc/qt-4.8/qgraphicsitemgroup.html , 就像是...
void Grid::addVerticalLineAt(qreal xCoord)
{
QRectF sceneRect = scene()->sceneRect();
QGraphicsLineItem* line = scene()->addLine(xCoord, mapFromScene(sceneRect.top()), xCoord, mapFromScene(sceneRect.bottom()));
(QGraphicsItemGroup*)(this->gridLines)->addToGroup(line);
}
void Grid::Refresh(qreal p_Scale)
{
delete this->gridLines; //deletes all lines underneath
gridLines = new QGraphicsItemGroup(this); //construct this _before_ you start calling addXXXLineAt
qreal spacing = BASIC_SPACING * p_Scale;
for(qreal curXCoord = sceneRect.left(); curXCoord < sceneRect.right(); curXCoord += spacing) //each spaced point in scenerect
{
addVerticalLineAt(curXCoord);
}
}
关于qt - 从 QGraphicsScene 中删除单个项目/QLineF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12480750/
QPolygonF有与其他 QPolygonF 并集、相交和相减的方法,但我需要与 QLineF 执行相交测试。 API 中似乎缺少此功能。 我想我可以做这样的事情: if (polygon .con
我已将网格绘制成 qgraphicsscene与 QLineF的,您可以添加自定义 qgraphicsitems作为网格中的块进入场景。我希望能够以不同的间距和索引重新绘制网格(索引只是较粗的线)。
我是一名优秀的程序员,十分优秀!