C++ 在Qt对话框上布局图像
如何在Qt中将图像添加到对话框中 我知道这在过去经常被问到,并且大多数答案都会给出一个C++ 在Qt对话框上布局图像,c++,qt,C++,Qt,如何在Qt中将图像添加到对话框中 我知道这在过去经常被问到,并且大多数答案都会给出一个QLabel及其setPixmap成员。然而,这通常不是用户(me)想要的: 带有pixmap集的QLabel不参与周围的QLayout。也就是说,当对话框调整大小时,它只是拒绝调整大小,例如,QPushButton就可以了。QHorizontalLayout中相邻的两个QPushButtons将(类似)平均分配它们之间的可用水平空间。在同一布局中,在QPushButton旁边有一个pixmap的QLabe将
QLabel
及其setPixmap
成员。然而,这通常不是用户(me)想要的:
- 带有pixmap集的
不参与周围的QLabel
。也就是说,当对话框调整大小时,它只是拒绝调整大小,例如,QLayout
就可以了。QPushButton
中相邻的两个QHorizontalLayout
s将(类似)平均分配它们之间的可用水平空间。在同一布局中,在QPushButton
旁边有一个pixmap的QPushButton
将保持固定大小QLabe
- 默认情况下,调整裸
QLabel的大小时,它不会调整其内容的大小
- 但是当它这样做(
)时,它将不会保持纵横比QLabel::setResizeContents
是否有任何本机方法可以在对话框上显示pixmap并使其合理地参与布局?可以通过
sizePolicy
属性管理项目大小调整。发件人:
sizePolicy:QSizePolicy
此属性保存小部件的默认布局行为
如果有一个QLayout管理此小部件的子项,则大小
使用该布局指定的策略。如果没有这样的QLayout,
使用此函数的结果
默认策略为Preferred/Preferred,这意味着小部件
可以自由调整大小,但首选大小为sizeHint()返回的大小。
类似按钮的小部件设置大小策略,以指定它们可以
水平拉伸,但垂直固定。这同样适用于
lineedit控件(例如QLineEdit、QSpinBox或可编辑的
QComboBox)和其他水平定向的小部件(例如
QProgressBar)。QToolButton通常是方形的,因此它们允许生长
在两个方向。支持不同方向的小部件(例如
QSlider、QScrollBar或QHeader)在各自的
只有方向。可以提供滚动条的小部件(通常是
QScrollArea)的子类倾向于指定它们可以使用
额外的空间,并且他们可以使用小于sizeHint()的空间
我想您正在搜索QSizePolicy::expansing
size策略:
sizeHint()是一个合理的大小,但是小部件可以缩小和缩小
还是有用的。小部件可以利用额外的空间,因此它应该
获得尽可能多的空间(例如,空间的水平方向
水平滑块)
为
QLabel
设置此选项,并检查其大小。请尝试QSizePolicy::Policy
enum中的其他值。您的问题很广泛。我不这么认为。为什么?你可以试试图形场景视图框架。将图像作为像素贴图项添加到场景中。@m.c.这在这里没有任何帮助。我认为您的问题必须重新表述,因为您要求的是非常具体的:您需要一个扩展小部件,它显示按比例缩放的图像并保持其纵横比。你对“合理参与布局”的定义太模糊,无法作为问题的主题。这无法解决问题。