我有一个带有GraphicsView的应用程序,使用此代码将大量的点绘制到QGraphicsView上并分配了一些数据

void GUI::paintitem(double x, double y, double Id)
{

    // Decalre a QPen for Painting dots
    QPen pen;

    // set the pen colour
    pen.setColor(Qt::white);

    QGraphicsEllipseItem *item = new QGraphicsEllipseItem;
    item->setPen(pen);
    item->setBrush(QBrush(Qt::SolidPattern));
    item->setRect(x,y,1.5,1.5);
    item->setData(m_count, Id);
    item->ItemIsSelectable;


    if(x < m_height && y < m_width)
    {
        // Add ellipse at the x y position passed in
        scene2->addItem(item);
    }
    m_count++;
}


在我的鼠标事件中,我有这个

if(event->type() == Qt::RightButton)
    {
        ui->graphicsView->setDragMode(QGraphicsView::RubberBandDrag);
        QList<QGraphicsItem*> selected = ui->graphicsView->scene()->selectedItems();
    }


QList应该包含我所有的物品时什么也不包含

查看使用此功能的文档和演示,我找不到任何有关选择实际上如何工作的帮助,

任何帮助将不胜感激

最佳答案

尝试这个:

item->setFlag(QGraphicsItem::ItemIsSelectable, true);

10-08 11:50