Как масштабировать изображения в QGraphicsScene?(Qt 5.11) - PullRequest
0 голосов
/ 25 июня 2018

У меня возникли проблемы с корректным масштабированием изображения в окне предварительного просмотра изображения до размера окна.У меня есть окно ImgViewer для предварительного просмотра изображений, и я хочу обновить отображаемое изображение всякий раз, когда в главном окне выбирается новый файл.Изображения обновляются корректно, так как новые щелкаются в главном окне, но масштабирование не применяется.Изображения всегда отображаются слишком большими для окна ImgViewer.

Вот код, который я написал для функции обновления изображения:

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

Нужно ли сбрасывать сцену каждый раз?время изменения размера окна?

1 Ответ

0 голосов
/ 25 июня 2018

Размер вашего окна указан ниже code:

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

Вместо:

QPixmap scaled_img = image.scaled(img_object->size(), Qt::KeepAspectRatio);

Использование сильфонов для разных пропорций:

enter image description here

...