Как вывести изображение на полную ширину в Qt QGraphicsView? - PullRequest
0 голосов
/ 18 апреля 2020

Я использую этот код для загрузки изображения и показа на экране.

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);

}

Но когда я загружаю маленькое изображение, оно не заполняет экран и отображается в исходном размере. Как видите:

enter image description here

Нужный экран должен выглядеть следующим образом:

enter image description here

(Я пытаюсь сделать приложение, похожее на этот сайт . Оттенки серого не имеет значения.)

Используемое изображение: enter image description here

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

Это решило мою проблему:

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);
1 голос
/ 18 апреля 2020

Попробуйте fitInView с Qt :: AspectRatioMode для вашего ui->graphicsView объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...