如何调整图像大小以适应图形视图



我有一段代码,可以在listWidget上显示一个带有其名称的图像。在这种情况下,图像将不适合图形视图。我测试了一些调整大小的方法。但是图像不会调整大小。

如何调整图像大小以适应?请看一下我的代码。

directory.setNameFilters({"*.png", "*.jpg"});
for(const QFileInfo & finfo: directory.entryInfoList()){
auto imageObject = new QImage();
imageObject->load(finfo.absoluteFilePath());
auto image = QPixmap::fromImage(*imageObject);
QGraphicsScene *scene = new QGraphicsScene(this);
scene->addPixmap(image);
//scene->setSceneRect(image.rect());
QGraphicsView *graphicsView = new QGraphicsView(scene);
graphicsView->fitInView(scene->sceneRect(),Qt::KeepAspectRatio);
auto item = new QListWidgetItem("", ui->listWidget_main);
auto    widget = new QWidget;
auto    label = new QLabel(finfo.fileName());
auto    vb = new QVBoxLayout;
vb->addWidget(label);
vb->addWidget(graphicsView);
widget->setLayout(vb);
widget->setMinimumSize(340,340);
ui->listWidget_main->setItemWidget(item,widget);
}

我使用QLabel而不是QGraphicsView

directory.setNameFilters({"*.png", "*.jpg"});
for(const QFileInfo & finfo: directory.entryInfoList()){
QPixmap image(finfo.absoluteFilePath());
auto imageLabel = new QLabel();
imageLabel->setMinimumSize(320,320);
imageLabel->setScaledContents(true);
imageLabel->setPixmap(image);

auto    item = new QListWidgetItem("",listWidget_main);
auto    widget = new QWidget;
auto    label = new QLabel(finfo.fileName());
auto    vb = new QVBoxLayout;
vb->addWidget(label);
vb->addWidget(imageLabel);
widget->setLayout(vb);
widget->setMinimumSize(340,340);
listWidget_main->setItemWidget(item,widget);
}

最新更新