如何使用QGraphicsLinearLayout

时间:2017-03-21 16:33:53

标签: qt mouseevent qgraphicsitem qtwidgets

我将QGraphicsLayoutItem放在QGraphicsLinearLayout中。 这被添加到我的QGraphicsWidget。

void MyCustomQGraphicsWidget::mousePressEvent(QGraphicsSceneMouseEvent * mouseEvent)
{
    if (mouseEvent->button() == Qt::LeftButton) {
        qDebug() << "clicked inventory";
    }
}

我无法找到一种方法来获取,例如在布局中单击的项目的索引。

1 个答案:

答案 0 :(得分:0)

没有直接的方法可以做到这一点。但是你可以计算并索引和使用itemAt()方法,假设鼠标y坐标是mouseY,项目高度是H.你可以写:

int index = mouseY / H; // could be minus some margin
QGraphicsLayoutItem *item = layout.itemAt(index);