누군가 QGraphicsView
의 크기에 맞게 현재 QGraphicsItem
크기를 조정할 수있는 QGraphicsView
을 만들려고합니다.확대 QGraphicsView에 맞게 QGraphicsItem
나는 사용자 정의 버전을 만들기 위해 QGraphicsItem
을 오버라이드했으며 몇 가지 방법을 구현 했으므로 크기가 조정 된 정도를 알 수 있습니다 (원본에 항상 비례하므로 하나의 축척 비율 - 너비와 높이에 동일 함). 신장).
void ImagePixmapItem::setScaleFactor(float sf){
scaleFactor = sf;
this->boundingRect().setWidth(this->boundingRect().width()*scaleFactor);
this->boundingRect().setHeight(this->boundingRect().height()*scaleFactor);
}
그리고 내 주요 형태, 나는 버튼에 다음과 같습니다 :
QRect portRect = ui->graphicsView->viewport()->rect();
double scaleFactorX;
if(portRect.width() <= (item->boundingRect().size().width()))
scaleFactorX =portRect.width() /(item->boundingRect().size().width());
else
scaleFactorX = (item->boundingRect().size().width())/portRect.width();
qDebug("Scalefactor: %4.3f \n", scaleFactorX);
qDebug("item width: %4.3f \n", item->boundingRect().size().width());
qDebug("item height: %4.3f \n", item->boundingRect().size().height());
item->setScaleFactor(scaleFactorX);
item->scale(scaleFactorX,scaleFactorX);
그 ImagePixmapItem
중 1 곳 item
입니다
는 그래서 scaleFactor
세터에서 나는 다음이 .
처음 이미지가 뷰포트보다 크고 창의 크기에 맞게 잘 조정됩니다 (최소 너비 이상). 그러나 버튼을 다시 누르면 scaleFactorX
및 item
너비와 높이의 동일한 값이 다시 나타납니다.
변형 된 이미지의 boundingRect
을 변경할 수 있습니까? 그렇지 않다면 어떻게해야합니까?
fitInView를 사용하는 경우 실제로 항목 자체의 크기가 조정됩니까? 염두에 두십시오, 장면에 여러 항목이있는 경우 실제로 뷰에 맞게 포커스가있는 단일 항목을 조작하려고합니다. 뷰 자체가 뷰의 항목에 맞도록 크기가 조정됩니다. – Derek
I 개별 항목 크기를 조작하고 싶지는 않습니다. 그렇다면'fitToView'는 답이 아닙니다. 죄송합니다.그러나,'setScaleFactor()'는 단지 임시 변수를 설정하기 때문에 아무런 효과가 없습니다. 개별 항목 크기 조정에 대한 내 편집을 참조하십시오. –