내 문제는 QPointF로 값을 설정할 때 실제 상태를 확인할 때 이상한 값 (예 : 1.32841e + 09)이 발생한다는 것입니다. while 루프의 여섯 번째 줄에 출력 할 때 그 값을 얻지 못했습니다.QRectF에 대해 왼쪽 위와 아래 오른쪽으로 설정
void MainView::showAllGraphs(){
QMapIterator<QString, QRectF> i(graphRectangles);
QPointF topLeft;
QPointF bottomRight;
QRectF maxRect;
while (i.hasNext()) {
i.next();
qreal tlX = i.value().topLeft().x();
qreal tlY = i.value().topLeft().y();
qreal brX = i.value().bottomRight().x();
qreal brY = i.value().bottomRight().y();
QTextStream(stdout) << tlY << " " << brY << endl;
if(tlY < topLeft.y()){
topLeft.setY(tlY);
topLeft.setX(tlX);
}
if(brY > bottomRight.y()){
bottomRight.setY(brY);
bottomRight.setX(brX);
}
}
maxRect.setTopLeft(topLeft);
maxRect.setBottomRight(bottomRight);
QTextStream(stdout) << topLeft.y() << " x " << topLeft.y() << endl;
graphicsScene>setSceneRect(maxRect);
graphicsView->fitInView(maxRect);
matrixUpdated(graphicsView->matrix());
}
첫 번째 인쇄에서는 -100과 100 사이의 값을 얻습니다 (유효 함). 마지막에 인쇄 할 때 나는 갑자기 2.45841e + 09 또는 때로는 0과 같은 값을 얻습니다. 나는 그것을 변화 시키길 원치 않습니다.
그렇다면이 가치 변화의 이유는 무엇입니까? 나는 그것이 왜 그런 가치로 설정되었는지 알 수 없다.
예제가 약간 일관성이 없습니다 (예를 들어,'topLeft.y() '를 두 번 인쇄하는 이유는 무엇입니까?) 또한 문제의 중심이 아닌 불필요한 호출을 제거한 경우 더 유익 할 것입니다. 예를 들면 : graphicsScene/graphicsView/matrixUpdated 호출을 꺼내면 여전히 문제가 있습니까? 고정 된 정보 목록을 전달하는 작은 프로그램에서 문제를 격리시킬 수 있습니까? http://sscce.org/에서 살펴보십시오. – HostileFork