在QT对话框上布置图像

Lay out an image on a Qt dialog

本文关键字:布置 图像 对话框 QT      更新时间:2023-10-16

如何将图像添加到qt中的对话框?

我知道过去经常被问到,大多数答案都带有QLabel及其setPixmap成员。但是,这通常不是用户(ME)打算:

  • 带有PixMap集的QLabel不参与周围的QLayout。也就是说,当调整对话框大小时,它只是拒绝调整大小,例如QPushButton会做到。在QHorizontalLayout中彼此相邻的两个QPushButton将(类似)将它们之间的可用水平空间均匀分配。在同一布局中,QPushButton旁边的pixmap的QLabe只会保持尺寸。

  • 默认情况下,裸 QLabel在调整大小时不会调整其内容的大小。

  • ,但是当它做(QLabel::setResizeContents)时,它不会保持长宽比。

是否有任何本机在对话框上显示一个PixMap的方法,并合理地参与了布局?

可以通过sizePolicy属性管理项目大小的项目。摘自QT文档:

sizepolicy:qsizepolicy

此属性保留了小部件的默认布局行为。

如果有一个管理这个小部件的孩子的Qlayout,则大小 使用该布局指定的策略。如果没有这样的qlayout, 使用此功能的结果。

默认策略是首选/首选,这意味着小部件 可以自由调整大小,但更喜欢sizehint()返回。 按钮状的小部件设置了大小策略,以指定他们可以 水平伸展,但垂直固定。同样适用于 lineDit控件(例如qlineedit,qspinbox或可编辑 Qcombobox)和其他水平取向的小部件(例如 qprogressbar)。Qtoolbutton通常是正方形的,因此它们允许增长 在两个方向上。支持不同方向的小部件(例如 QSlider,QSCrollbar或Qheader)指定在各自的 仅方向。可以提供滚动条的小部件(通常 QSCrollarea的子类)倾向于指定它们可以使用 额外的空间,他们可以用小于sizehint()进行制作。

我认为您正在搜索QSizePolicy::Expanding大小策略:

sizehint()是一个明智的尺寸,但是小部件可以缩小和 仍然有用。小部件可以利用额外的空间,因此应该 获得尽可能多的空间(例如 水平滑块)。

为您的QLabel设置此问题,并检查如何调整大小。尝试QSizePolicy::Policy枚举的其他值。