如何调整图像大小以适合图形视图
How to resize image to fit in graphic view
我有代码可以在 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);
}
我有代码可以在 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);
}