2012-01-20 3 views
2

Существует ли простой способ, чтобы выбрать часть QGraphicsItem (как для выбора, с пунктирной линией, например), несмотря на его положение в QGraphicsSceneQGraphicsItem выбор

Я нашел QGraphicsItem::ItemIsSelectable, но это не делает помогите мне много.

Thx

ответ

3

Вы не можете выбрать часть QGraphicsItem. Вы можете выбрать весь предмет. Обычно он будет рисовать пунктирный прямоугольник вокруг себя при выборе.

Вы можете выбрать деталь:

QGraphicsItem::setSelected 

или

QGraphicsScene::setSelectionArea 
0

Вы можете позвонить QGraphicsScene::setSelectionArea(QPainter path, QTransform), а затем извлечь область, вызвав SELECTIONAREA. Однако, если вы хотите получить элементы, находящиеся в данный момент под выборами, вы получите только целые QGraphicsItems.

2

Вы хотите, чтобы выбрать его, когда вы щелкаете на нем? Если да, вы можете переопределить слушателя mousePressEvent(QGraphicsSceneMouseEvent event) для этого элемента и использовать setSelected(). В Java (пардон об этом), это было бы что-то вроде:

@Override 
public void mousePressEvent (QGraphicsSceneMouseEvent event) { 
    if (event.button() == Qt.MouseButton.LeftButton) { 
     this.setSelected(true); 
    } 
} 

Если вы хотите, чтобы выбрать его с левой кнопкой конечно. :)

Смежные вопросы