【问题标题】:QGraphicsItem selectedItems() is emptyQGraphicsItem selectedItems() 为空
【发布时间】:2020-06-20 01:20:31
【问题描述】:

我正在尝试获取项目,但无法使用 selectedItems()。使用以下代码,如果我使用 selectedItems.last(),qDebug 会返回“()”或崩溃。

我不明白我做错了什么,我什至添加了一个 foreach 以确保选择了项目但没有。以下代码来自我的 View 类。

 if (event->button() == Qt::LeftButton) {


            foreach(auto item, items(event->pos())) {
               item->setSelected(true);
            }

           qDebug()<< scene->selectedItems();

请问我是否可以提供更多详细信息,我有很多代码,不知道我的问题可能涉及什么。

此外,如果我将 foreach 更改为:

 foreach(auto item, items(event->pos())) {
               scene->removeItem(item);
            }

该项目将被删除,因此它有点选择该项目。我不明白为什么 setSelected(true) 然后 selectedItems() 不返回我的项目。

【问题讨论】:

    标签: qt qgraphicsitem


    【解决方案1】:

    我发现默认情况下我的项目不可选择。顺便说一句,它是一个 QGraphicsEllipseItem。

    我的 selectedItems 正在使用以下标志:

     item->setFlag(QGraphicsItem::ItemIsSelectable);
    

    最终代码:

    foreach(auto item, items(event->pos())) {
    
                    item->setFlag(QGraphicsItem::ItemIsSelectable);
                      item->setSelected(true);
    
                }
    

    【讨论】:

      猜你喜欢
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 2016-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      相关资源
      最近更新 更多