2017-02-23 39 views
0

如何将图像添加到Qt中的对话框中?在Qt对话框中布置图像

我知道这在过去经常被问到,大部分答案都是QLabel及其setPixmap成员。然而,这通常不是什么用户(我)打算:

  • 一个QLabel与像素图组不参与周边QLayout。也就是说,当对话框被调整大小时,它只是拒绝调整大小,例如QPushButton就可以。在QHorizontalLayout中彼此相邻的两个QPushButton将类似地等分它们之间的可用水平空间。 A QLabe在相同布局中使用QPushButton旁边的像素图将保持固定大小。

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

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

有没有对一个对话框中显示一个像素图,并有其合理参与布局任何本地方式?

+0

你的问题很广泛。 – eyllanesc

+0

我不这么认为。你为什么? – Kamajii

+0

您可以尝试图形场景视图框架。将图像作为像素图项添加到场景中。 –

回答

0

项目大小可通过sizePolicy属性进行管理。从Qt documentation

sizePolicy:QSizePolicy

这个属性保存控件的默认布局行为。

如果存在管理此小部件子项的QLayout,则使用由该布局指定的大小 策略。如果没有这样的QLayout,则使用该函数的结果,即 。

默认策略是首选/首选,这意味着小部件 可以自由调整大小,但更喜欢sizeHint()返回的大小。 类似按钮的小部件设置尺寸策略以指定它们可能水平延伸但纵向固定。 lineedit控件(例如QLineEdit,QSpinBox或可编辑的 QComboBox)和其他水平方向的小部件(如 QProgressBar)也是如此。 QToolButton通常是方形的,所以它们允许在两个方向上增长 。支持不同方向的小部件(例如 QSlider,QScrollBar或QHeader)仅指定相应的 方向的拉伸。可以提供滚动条的小部件(通常为QScrollArea的 的子类)倾向于指定它们可以使用 附加空间,并且它们可以使用小于sizeHint()的方法。

我认为你正在寻找QSizePolicy::Expanding大小政策:

的sizeHint()是一个合理的规模,但小部件可以收缩和 仍然是有用的。该小部件可以利用额外的空间,所以它应该获得尽可能多的空间(例如,水平滑块的水平方向 )。

设置为您的QLabel并检查它将如何调整大小。尝试使用QSizePolicy::Policy enum中的其他值。

+0

这个问题没有提供任何解决方案。 –