0
아이디어는 사용자가 도형을 클릭하고 도형의 정보가 테이블에 표시된다는 것입니다. 사용자가 도형을 선택하면 (마우스를 도형 위로 드래그하면) 잘 작동합니다. 나는이 코드를 수정하여 그 동작을 수행하려고 노력하고 있지만 운이 좋지는 않다.클릭 한 QGraphicsItem에서 정보를 얻는 방법?
나는에서 AA 전화를 가지고 : 이것은 내가 선택 모드 뭘하는지입니다
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
마우스 내가 데이터를 업데이트합니다 해제 될 때 :
//enter the mode for selecting
if(theMode == SelectObject){
if (this->items().isDetached()){
//we check if the object is selected
if (this->selectedItems().isEmpty()){
qDebug() << "not selected";
isSelected = false;
return;
}
//we get a list of the shapes
QList<QGraphicsItem*> stackOfShapes = this->items();
//we get index of selected shape
QGraphicsItem *selected = this->selectedItems().first();
int indexOfShape = stackOfShapes.indexOf(selected);
//we see which shape is (For a Rectangle)
switch (selected->type()) {
case 346:
{
updateDataOfRect();
}
break;
}
}
문제를 그 :
//we get index of selected shape
QGraphicsItem *selected = this->selectedItems().first();
도형을 클릭하지 않은 경우 어떻게해야합니까?
은 내가 mousePressEvent의 형태의 서브 클래스를 수정하려고 :if (event->button() == Qt::MouseButton::LeftButton) {
this->setSelected(true);
}
어느 한 도움이 해결책을 찾기 위해 수 있습니까?
감사합니다.
좋아요 ... 지금은 노력하고, 내가 인덱스를 얻을 수 있습니다. :) – sgbzona