我的问题是,当我将值设置为 QPointF 时,当我检查它们的真实值时,会得到像 1.32841e+09 这样的奇怪值。当我在 while 循环的第六行打印出来时,我没有得到这些值。
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 的值。我不希望它变成那个值。
那么这种价值变化的原因是什么?我无法弄清楚为什么它被设置为这样的值。