QGraphicsScene中的图像在缩放到32,767像素以上时会消失

时间:2015-10-29 00:22:17

标签: c++ qt graphics

我在QGraphicsScene内有QGraphicsView,显示缩放的像素图。出于某种原因,当像素图大于32,767像素(类型int的最大值)时,它根本无法显示或有时部分显示。

QT5的QGraphicsView文档说:

请注意,尽管场景支持几乎无限大小,但滚动条的范围绝不会超出整数范围(INT_MIN,INT_MAX)。

但是,我应该能够在我的系统上显示大于32,767像素的像素图,因为INT_MIN = -2147483648,INT_MAX = 2147483647。什么可能导致pixmap在一维中大于32,767像素时不显示?只要它低于32,767像素,图像就会正常显示。代码如下。

// Transformation matrix
QMatrix matrix;
if(!time_vertical) {
    matrix.scale(1, -1);
    matrix.rotate(90);
}
matrix.scale(frequency_zoom, time_zoom);
// Create pixmap
pixmap.convertFromImage(*image);
pixmap = pixmap.transformed(matrix);
// Add pixmap to scene
scene->clear();
QGraphicsPixmapItem* item = scene->addPixmap(pixmap);
item->setPos(0, 0); // Set pixmap origin (0, 0) in scene coordinates
scene->setSceneRect(pixmap.rect());

更多信息:我在Ubuntu 14.04上使用了英特尔处理器。我在调试输出中打印了INT_MIN和INT_MAX,所以我确定它们的值。

0 个答案:

没有答案