更改分配给未选择的QGraphicsItems的像素图

Changing Pixmap assigned to non-selected QGraphicsItems

本文关键字:QGraphicsItems 像素 选择 分配      更新时间:2023-10-16

在我的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
    }
}