我正在使用Qt来绘制一些数据可视化。我有一些线条表示时间轴上的某些重要点,但我希望能够从视图中删除这些线条,以便下方的信息更清晰可见。Qt - 在QGraphicsScene中编辑QGraphicsLineItems
我明白如何将它们从视线中移除,但问题是如何在场景视图中查找哪些QGraphicsItem是线条,哪些不是。
我一直在使用
try {
qgraphicsitem_cast<QGraphicsLineItem>(scene->items()[i]);
} catch (...) {
}
试图但这并不甚至编译。我试着检查qgraphicsitem_cast()的输出是否为0,但编译器也不喜欢这样。
这是我最当前的代码:
void Plotter::showHideLines() {
int i;
QGraphicsLineItem l;
for (i = 0; i < scene->items().count(); i++) {
try {
qgraphicsitem_cast<QGraphicsLineItem>(scene->items()[i]);
scene->items()[i]->setVisible(!scene->items()[i]->isVisible());
} catch (...) {
}
}
}
忽略“L”,我没有打扰尝试别的东西之后将其删除。
我对Qt很新,我刚刚在过去几天里学习它。任何人都可以帮忙吗?
你为什么要尝试删除线?不吸引他们不容易吗?尝试在QGraphicsView中擦除可能比你想象的有更多的背景时被认为更难... – Uflex
嗯,我想要让它们可见或不可见的选项。他们需要在那里,他们向用户提供信息。 – Luke