首页 > 解决方案 > 如何在 Qt QGraphicsView 中全宽显示图像?

问题描述

我正在使用此代码加载图像并在屏幕中显示。

void MainWindow::on_actionOpen_triggered(void){

    QString fileName;
    fileName = QFileDialog::getOpenFileName(this,
        tr("Open Image"), "C:\\Users", tr("Image Files (*.png *.jpg *.jpeg *.bmp)"));


    qim.load( fileName );
    pixmap = QPixmap::fromImage( qim );
    scene.clear();
    scene.addPixmap( pixmap );
    ui->graphicsView->setScene(&scene);

}

但是当我上传一张小图片时,它并没有填满屏幕,而是以原始大小显示。如你看到的:

在此处输入图像描述

所需的屏幕应如下所示:

在此处输入图像描述

(我正在尝试制作类似于此站点的应用程序。灰度无关紧要。)

使用的图像: 在此处输入图像描述

标签: c++qtimage-processing

解决方案


这解决了我的问题:

qim.load( fileName );
pixmap = QPixmap::fromImage( qim );

QPixmap scaled_img = pixmap.scaled(this->width(), this->height(), Qt::KeepAspectRatio);

scene.clear();
scene.addPixmap( scaled_img );
ui->graphicsView->setScene(&scene);

推荐阅读