更改分配给未选定QGraphicsItems

时间:2016-11-09 15:31:09

标签: c++ qt

在我的QGraphicsScene中,我添加了几个指针。请参阅初始线程Identify which QPixmapItem has been selected

这些指针分配了QPixmaps。当我选择这些指针时,我可以获得与它们相关的所有信息,除非能够在未选择指针时更改分配给它的像素图。

基本上,我可以在选择pixmap时更改pixmap,因为该状态很容易从中拉出,但我不确定如何在不再选择其他项目时将其重置回原始图像。

1 个答案:

答案 0 :(得分:0)

所以简单的解决方案就是使用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
    }
}