更改分配给未选择的QGraphicsItems的像素图
Changing Pixmap assigned to non-selected QGraphicsItems
在我的QGraphicsScene中,我添加了几个指针。查看初始线程确定哪个QPixmapItem被选中
这些指针被赋值为qpixmap。当我选择这些指针时,我可以获得与它们相关的所有信息,除了在指针未被选中时改变分配给它的像素图的能力。
基本上,我可以改变像素图时,它的选择,因为状态很容易从拉,但我不确定如何重置其他项目回到原来的图像时,他们不再被选中
因此,简单的解决方案是使用QgraphicsScene SIGNAL focusItemChanged(),但无论出于何种原因,它根本不会发出。
然而,我能够添加一个新的列表来抓取场景中的所有项目,将它们的值设置为"关闭状态"图像,然后运行并将"打开状态"图像仅分配给选中的一个。
void MainWindow::whatIsSelected()
{
QList<QGraphicsItem *> allItems_list = scene->items();
QList<QGraphicsItem *> selItem_list = scene->selectedItems();
foreach(QGraphicsItem* item, allItems_list)
{
//assign off state images
}
foreach(QGraphicsItem* item, selItem_list)
{
//assign on state image
}
}
相关文章:
- QGraphicsItems not showing up QGraphicsScene
- Qt添加到QGraphicsLinearLayout时QGraphicsItems会发生什么
- 对许多QGraphicsItems共享相同的QGraphicsEffect
- 根据中心点从最小到最大对QGraphicsItems QList进行排序
- 更改QGraphicsItems在场景事件处理程序中的位置
- 移动不同的QGraphicsitems独立的Qt图形场景
- Qt网格与QgraphicsItems拖放
- 固定了QGraphicsItem的位置,而不改变场景中其他QGraphicsItems的行为
- QGraphicsItems只能在堆上创建
- 更改分配给未选择的QGraphicsItems的像素图
- 如何过滤可见的QGraphicsItems从QGraphicsScene在QGraphicsView
- 可以将OpenGL用于我的QGraphicsItems加快在QGraphicsView中的显示速度
- 如何在离开boundingRect后删除QGraphicsitems