Qt-在QGraphicsScene中只编辑QGraphicsLineItems
Qt - Edit just QGraphicsLineItems within a QGraphicsScene
我正在使用Qt绘制一些数据可视化。我有一些线表示时间线上的某些重要点,但我希望能够将这些线从视图中删除,以便下面的信息更清晰可见。
我知道如何将它们从视线中移除,但问题是如何找到场景视图中哪些QGraphicsItems
是线,哪些不是线。
我试过使用
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还很陌生,最近几天我一直在学习。有人能帮忙吗?
我不建议迭代每个场景项目,只是为了隐藏某个类型,因为当项目数量变大时,事情会变得很慢。
相反,只要创建了一行,就将其添加到列表中。当它们需要隐藏时,遍历列表并隐藏它们。它占用的内存略多,但速度更快、更安全,并且需要更少的编码。
相关文章:
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 编辑文件中的文本
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- SetDlgItemInt 不会更改嵌入资源的编辑框
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- C++,Qt:仅在双击后编辑qtablewidget项目
- 编辑字符串以包含括号 c++ 之间的变量
- Arduino函数无法编辑数组
- 调试符号中缺少 QObject 类信息(编辑但存在其他 Qt 类)
- "未定义对'WinMain@16'的引用"gcc 编辑器中的错误
- C++MFC编辑框处理双击
- 是否可以使用指针访问变量以避免直接编辑变量?
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 在 c++ 中编辑注册表项
- 无法将行编辑中的文本打印到 Qt C++ 中的标签
- 尝试使用 CMake 和 MinGW64 进行构建时出现多个编辑错误
- 如何从C++而不是虚幻编辑器中添加静态网格体组件的值?
- UE4 - Visual Studio在我从编辑器添加新的c ++文件后无法打开任何源文件 - UBT_COMPILED
- Qt如何将行编辑连接到进度条
- 使用 bash 脚本和测试处理进行代码编辑