Qt에서 impoly (matlab)와 비슷한 함수를 만들려고합니다. 지금, 나는를 QGraphicsView의 서브 클래스를 가지고로 "drawBackground"가상 기능을 설정 한 :QGraphicsView 서브 클래 싱 및 drawBackground 설정
void roiwindow::drawBackground(QPainter *painter, const QRectF &rect)
{
painter->save();
painter->drawImage(rect, *refimage);
painter->restore();
}
이 위대한 작품을 내가 멀리 배경 레이어로 정확하게 원하는 기본적으로. 자, 결국 폴리곤의 노드 역할을하는 원을 추가하려고합니다. 나는 이것을 사용하여 이것을했다 :
QGraphicsView *view = new QGraphicsView(this);
view->show();
QGraphicsEllipseItem *e1;
e1 = this->addEllipse(20, 20, 30, 30, QColor(0, 0, 0), Qt::white);
e1->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsMovable);
이것은 내가 원하는 것이다. 하지만 타원을 클릭하여 끌면 타원의 배경이 * 리 이미지의 축소 된 버전이됩니다 ... 이것은 화면 전체에 일종의 줄무늬를 남기지 만 다른 창을 클릭하면 사라집니다. 창을 최소화하십시오. QGraphicsItem도 drawBackground를 호출합니까? 그렇다면 항목이 드래그 될 때만 호출하는 것 같습니다. 이 코드를 더 잘 코딩 할 수있는 방법에 대한 제안 사항이 있습니까? 감사.
printf 문을 추가하기 만하면 항목을 드래그 할 때 drawbackground 함수가 호출됩니다. – Justin