그래서 그래픽보기를 클릭하고 클릭 한 정확한 위치에 타원이 나타나는이 앱을 제작하고 있습니다. 좋고 좋은, 지금 나는이 타원에 번호를 매기기를 원한다. 타원 내부에 텍스트를 설정하고 싶습니다. 마찬가지로 그래픽 뷰에서 첫 번째 시간을 클릭하면 타원이 나타나고 그 안에 "1"이라고 쓰여지고 다른 곳을 다시 클릭하면 "2"라는 텍스트가있는 다른 타원이 나타납니다.Qt GraphicsEllipseItem 번호 매기기
0
A
답변
0
void Widget::mousePressEvent(QMouseEvent *mouseEvent)
{
QPointF p = mouseEvent->localPos();
if (mouseEvent->button() == Qt::LeftButton &&
p.x() >= 20 && p.x() <= 780 && p.y() >= 20 && p.y() <= 780)
{
int l = 40;
count++;
elipse[count] = scene->addEllipse(p.x()-l/2-14, p.y()-l/2-14, l, l, QPen(Qt::black));
elipse[count]->setFlags(QGraphicsEllipseItem::ItemIsMovable)
}
}
EDIT! 나는 그것을 알아 냈다!
void Widget::mousePressEvent(QMouseEvent *mouseEvent)
{
QPointF p = mouseEvent->localPos();
if (mouseEvent->button() == Qt::LeftButton &&
p.x() >= 20 && p.x() <= 780 && p.y() >= 20 && p.y() <= 780)
{
int l = 40;
count++;
elipse[count] = scene->addEllipse(p.x()-l/2-14, p.y()-l/2-14, l, l, QPen(Qt::black));
elipse[count]->setFlags(QGraphicsEllipseItem::ItemIsMovable);
enumbering[count] = scene->addSimpleText(QString::number(count));
enumbering[count]->setPos(p.x()-l/2+3, p.y()-l/2-1);
enumbering[count]->setParentItem(elipse[count]);
}
}
+0
다른 질문으로 자신의 질문에 답하고 편집하지 마십시오. 그냥 질문을 편집 –
+0
좋아, 이제 귀하의 답변은 실제로 답변이므로 괜찮습니다. –
1
(아마도이 이미 완료) QGraphicsEllipseItem에서 파생, 타원을 그리는 클래스를 만듭니다 삽입 setpos()
scene->addItem()
움직임 타원과 함께 현장에 타원
해당 클래스에서 정적 멤버 static int ellipse_count
을 만들고 0으로 초기화합니다. 타원을 만들 때마다 카운터를 늘리고 매번 감소시킵니다 (put
타원 클래스에 QGraphicsTextItem으로 멤버를 추가하고 개체를 생성하여 타원 생성자에 배치 할 수 있습니다. 이렇게하면 타원형 참조 내부에 Text 항목을 상대 좌표로 배치 할 수 있으며 타원과 함께 이동합니다.
에 오신 것을 환영합니다. 당신은 당신의 문제를 아주 멋지다고 말했습니다. 너에게 좋다. 지금 가지고있는 작업 코드를 게시하면 사람들이 자신의 디자인에 갇혀있는 곳을 더 쉽게 이해할 수 있습니다. 이 타원에는 QGraphicsItem에서 파생 된 클래스가 있나요? –