0

我想问你一个我无法解决的问题。我有一个 QApplication 在第一个主窗口中加载图像。

代码如下:

QGraphicsScene *scene = new QGraphicsScene;
QPixmap pixmap(QString::fromStdString("image.png");
scene->addPixmap(pixmap);
ui->graphview->setScene(scene);
ui->graphview->show();

我正在尝试使图像适合在 QGraphivsView 中缩放,即使我调整了窗口大小。

但是,图像在运行时以自己的大小显示,并且在调整窗口大小时该大小不会改变。例如,增加我的窗口不会增加图像大小,同样减少。

我什至尝试添加以下代码:

ui->graphview->fitInView(pixmap, Qt::KeepAspectRatioByExpanding);

但没有任何工作。

我在下图中为您提供了一个示例,说明正在发生的事情。

在此处输入图像描述

4

1 回答 1

0

然而,我找到了一种方法,它并不是 100% 令人满意。我已经替换了 resizeEvent 函数,如下例所示:

void QMainWindows::resizeEvent(QResizeEvent *){
QRectF bounds = ui->graphQSYS->scene()->sceneRect();
ui->graphQSYS->fitInView(bounds, Qt::KeepAspectRatioByExpanding);
ui->graphQSYS->centerOn(bounds.center());
}

但是,在调整大小时,图像质量变得非常糟糕。上面写的文字再也无法阅读了。你知道另一种保持图片质量的方法吗?非常感谢。

于 2018-12-17T10:37:37.437 回答