gpt4 book ai didi

c++ - Qt5 C++ QGraphicsView : Images don't fit view frame

转载 作者:IT老高 更新时间:2023-10-28 22:36:26 25 4
gpt4 key购买 nike

我正在开发一个程序,该程序向用户显示他选择的一些图片。但是有一个问题,因为我想把这张图片放到QGraphicsView的frame里,而且图片确实比frame小。

这是我的代码:

image = new QImage(data.absoluteFilePath()); // variable data is defined when calling this method
scn = new QGraphicsScene(this); // object defined in header
ui->graphicsView->setScene(scn);
scn->addPixmap(QPixmap::fromImage(*image));
ui->graphicsView->fitInView(scn->itemsBoundingRect(),Qt::KeepAspectRatio);

我尝试了很多在网上找到的解决方案,但没有人不帮助我。当框架为 200 x 400 像素时,图片的大小约为 40 x 60 像素。有什么问题?

以下是上面代码生成的示例以及我想要输出的示例: enter image description here

最佳答案

我的问题的解决方案是 Dialog 的 showEvent()。这意味着你不能在窗体显示之前调用 fitInView(),所以你必须为对话框创建 showEvent() 并且图片将被适配到 QGraphics View 的框架中。

以及您必须添加到对话框代码中的示例代码:

void YourClass::showEvent(QShowEvent *) {
ui->graphicsView->fitInView(scn->sceneRect(),Qt::KeepAspectRatio);
}

关于c++ - Qt5 C++ QGraphicsView : Images don't fit view frame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17028680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com