首页 >后端开发 >C++ >如何调整 QLabel 的大小以保持 QPixmap 的长宽比?

如何调整 QLabel 的大小以保持 QPixmap 的长宽比?

Patricia Arquette
Patricia Arquette原创
2024-10-29 15:23:02503浏览

How to Resize a QLabel to Maintain the Aspect Ratio of a QPixmap?

Qt:调整 QLabel 大小以保持 QPixmap 的纵横比

您寻求在 QLabel 内显示 QPixmap,调整其大小,同时保持 QPixmap 的宽高比。原始宽高比。

解决方案:

要实现此目的,您可以利用 QSizePolicy 和 sizeHint() 方法,而无需子类化。

QSizePolicy 调整:

为您的 QLabel 选择合适的大小策略,例如 QSizePolicy::Expanding 或 QSizePolicy::MinimumExpanding。这将允许标签根据可用空间增大或缩小。

保留纵横比:

每当 QPixmap 发生变化时,您都可以在保留其纵横比的同时缩放它:

<code class="cpp">int w = label->width();
int h = label->height();

label->setPixmap(p.scaled(w,h,Qt::KeepAspectRatio));</code>

事件处理:

将此代码添加到两个关键位置:

  • 像素图更新: 当 QPixmap 动态更新时。
  • ResizeEvent: 在包含 QLabel 的 widget 的 resizeEvent 中。这可以确保即使小部件更改大小时标签也能保持正确缩放。

以上是如何调整 QLabel 的大小以保持 QPixmap 的长宽比?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn