如何在 QGraphicsScene 中缩放图像? (Qt 5.11)
How to scale images in QGraphicsScene? (Qt 5.11)
我在将图像预览器中的图像正确缩放到 window 大小时遇到了一些问题。我有一个 ImgViewer
window 用于预览图像,并且想在主 window 选择新文件时更新显示的图像。在主 window 中单击新图像时,图像正在正确更新,但未应用缩放。对于 ImgViewer
window.
,图片总是显得太大了
这是我为图像更新功能编写的代码:
void ImgViewer::update_img(QString img_path){
img_object = new QImage();
img_object->load(img_path);
image = QPixmap::fromImage(*img_object);
QPixmap scaled_img = image.scaled(img_object->size(), Qt::KeepAspectRatio);
scene = new QGraphicsScene(this);
scene->addPixmap(scaled_img);
scene->setSceneRect(scaled_img.rect());
ui->graphicsView->setScene(scene);
}
每次 window 调整大小时都需要重新设置场景吗?
在下面 code
中使用您的 windows 尺码:
QPixmap scaled_img = image.scaled(this->width(), this->height(), Qt::KeepAspectRatio);
而不是:
QPixmap scaled_img = image.scaled(img_object->size(), Qt::KeepAspectRatio);
不同宽高比的波纹管的使用:
我在将图像预览器中的图像正确缩放到 window 大小时遇到了一些问题。我有一个 ImgViewer
window 用于预览图像,并且想在主 window 选择新文件时更新显示的图像。在主 window 中单击新图像时,图像正在正确更新,但未应用缩放。对于 ImgViewer
window.
这是我为图像更新功能编写的代码:
void ImgViewer::update_img(QString img_path){
img_object = new QImage();
img_object->load(img_path);
image = QPixmap::fromImage(*img_object);
QPixmap scaled_img = image.scaled(img_object->size(), Qt::KeepAspectRatio);
scene = new QGraphicsScene(this);
scene->addPixmap(scaled_img);
scene->setSceneRect(scaled_img.rect());
ui->graphicsView->setScene(scene);
}
每次 window 调整大小时都需要重新设置场景吗?
在下面 code
中使用您的 windows 尺码:
QPixmap scaled_img = image.scaled(this->width(), this->height(), Qt::KeepAspectRatio);
而不是:
QPixmap scaled_img = image.scaled(img_object->size(), Qt::KeepAspectRatio);
不同宽高比的波纹管的使用: