【问题标题】:How to delete selected Graphics item group?如何删除选定的图形项组?
【发布时间】:2018-12-27 05:29:48
【问题描述】:

在有多个组的场景中,如何删除选定的项目组? 当我尝试删除组时,它只会删除最后创建的组。

#include "graphicscene.h"    

QGraphicsItemGroup *mpGroup ;

void GraphicScene::keyReleaseEvent(QKeyEvent * keyEvent)
{
    if( keyEvent->key() == Qt::Key_F1) {
        qDebug() << "group created";
        mpGroup = createItemGroup(selectedItems());
        mpGroup->setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable);
        qDebug() << "Group Address "<< mpGroup ;
    } else if( keyEvent->key() == Qt::Key_F2)  { 
        qDebug() << "Group Before delete selected item"<< selectedItems() ;  
        if(mpGroup != NULL) {  
            destroyItemGroup(mpGroup);
            qDebug() << "Group Deleted "<< mpGroup ;
        }
    } 
}

【问题讨论】:

    标签: c++ qt qt5 qgraphicsscene qgraphicsitem


    【解决方案1】:

    一种可能的解决方案是使用type() 来验证它是QGraphicsItemGroup

    void GraphicScene::keyReleaseEvent(QKeyEvent * keyEvent){      
        if( keyEvent->key() == Qt::Key_F1)
        {
            qDebug() << "group created";
            QGraphicsItemGroup *group = createItemGroup(selectedItems());
            group->setFlags(QGraphicsItem::ItemIsSelectable | 
                     QGraphicsItem::ItemIsMovable);
            qDebug() << "Group Address "<< group ;
        }
        else if( keyEvent->key() == Qt::Key_F2)  
        { 
            qDebug() << "Group Before delete selected item"<< selectedItems() ; 
            for(QGraphicsItem *item: selectedItems()){
                if(item->type() == QGraphicsItemGroup::Type)    
                {     
                     QGraphicsItemGroup *group = qgraphicsitem_cast<QGraphicsItemGroup *>(item);
                     destroyItemGroup(group);
                     qDebug() << "Group Deleted "<< group ;
                }
            }
        } 
    }
    

    【讨论】:

    • 谢谢....实际上我必须删除选定的组....它会删除列表中的最后一个....
    • @Sagar 再试一次
    猜你喜欢
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    相关资源
    最近更新 更多