【问题标题】:view image in a small part of window in qt在qt窗口的一小部分查看图像
【发布时间】:2012-12-14 16:55:39
【问题描述】:

我知道如何在 Qt jpg image display 的完整窗口中查看图像,但我需要显示 200x300px 大小的图像。这意味着我需要程序读取 jpg 图像并将其调整大小并在放置在窗口一侧的小框中查看它。我不知道我应该为此放置哪个小部件以及执行此操作的方法。有人可以指出我一些教程或给出简单的建议。

谢谢。

【问题讨论】:

    标签: c++ image qt


    【解决方案1】:

    加载图片后,例如:

    QImage img;
    img.loadFromData(data);
    

    使用 QImage::scaled() 创建它的缩放副本并将其分配给它自己。示例:

    img = img.scaled(200, 300, Qt::KeepAspectRatio, Qt::SmoothTransformation);
    

    根据需要调整标志(请参阅有关可用标志的 QImage::scaled() 文档。)

    然后您可以显示它。最简单的方法是将其设置为 QLabel 上的像素图:

    QLabel label;
    label.setPixmap(QPixmap::fromImage(img));
    

    您可能希望为 QLabel 设置一个固定大小,但这取决于您如何处理应用程序中的整体布局。

    【讨论】:

    • @UmNyobe 欢迎加入俱乐部 ;-)
    • 我可以补充一点,可能需要固定标签的大小,否则重新调整窗口大小将重新调整标签大小(因此显示的图像)
    • @UmNyobe 不能为此使用 QLabel::setScaledContents(false) 吗? (无论如何,默认情况下这是错误的。)
    • 你是对的,图像没有重新调整大小,但也存在布局问题。
    • 我将img.loadFromData(data);替换为`img.loadFromData("test.jpg");现在更清楚地说明如何查看它。
    猜你喜欢
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    相关资源
    最近更新 更多