【问题标题】:Managing items in a scene QT管理场景 QT 中的项目
【发布时间】:2015-06-06 07:05:03
【问题描述】:

我真的陷入困境,我迫切需要帮助。我正在尝试在 QGraphicsScene 子类中收集项目的一些属性(QGraphicsitem 子类的实例)。这段代码正好在双击事件中的DiagramItem类中:

DiagramItem *cur;
QVector<QString> hal;
foreach(QGraphicsItem *item, this->scene()->items())
{
    cur = qgraphicsitem_cast<DiagramItem *>(item);
    hal.push_back(cur->getName());
}

现在,当我的场景中有一个项目时它可以正常工作,但是一旦我添加另一个项目,应用程序就会崩溃! 请帮忙!

【问题讨论】:

    标签: qt qgraphicsitem qgraphicsscene


    【解决方案1】:

    你应该检查演员的结果:

    cur = qgraphicsitem_cast<DiagramItem *>(item);
    if ( cur )
    {
        hal.push_back(cur->getName());
    }
    

    您的场景中可能还有其他项目,无法投射到DiagramItem 对象。

    【讨论】:

    • 不客气。永远不要忘记检查任何演员的结果。
    猜你喜欢
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 2013-01-25
    相关资源
    最近更新 更多