我已经有两年深入的Qt布局系统的工作。在此之后,我遇到了SizePolicies和布局方面的问题。我通常会找到解决方案,但从来没有真正理解我在做什么。
现在,我花了一些时间试图正确地理解,并为他们建立一个101指南,从来没有失败。我在关于QSizePolicy of a QWidget的文档中发现了以下信息:
此属性保存小部件的默认布局行为。 如果有一个管理此小部件子部件的QLayout,则使用该布局指定的大小策略。如果没有这样的QLayout,则使用此函数的结果。
例如,我认为如果您有一个QLabel,并且将策略设置为横向扩展,垂直固定,标签本身就会发生这样的变化。但一点也不。
当我读到这篇文章时,我看到它谈到了布局中的孩子。那么,这意味着什么呢?标签里什么都没有,这就是为什么不起作用的原因吗?
WHat关于在QFrame中插入标签,并告诉帧正在扩展.QFrame是展开还是扩展(取决于在相同布局中的其他兄弟小部件),还是会扩展或扩展标签,而不是扩展QFrame?
真是一团糟..。
伸展运动怎么样?如果在添加小部件时设置拉伸10:
layout->addwidget(label, 10, Qt::AlignHCenter);也不起作用。
当您添加小部件时,扩展0意味着:接受我告诉您的策略。默认值,取决于小部件的类型。按钮式小部件已经扩展-修复。像盒子一样的扩张.
伸展10的意思是:最大限度地生长。
我说的对吗?井。当有一个QFrame和一个QLabel在里面时,设置展开和10到标签是无效的。
发布于 2014-01-30 10:04:39
我不明白你所有的问题,所以我只回答那些我认为我要回答的问题。
我不知道那是什么意思。你所期待的具体行为是什么以及实际发生了什么?这个标签在版面上吗?这个布局中还有其他小部件吗?
如果将QSizePolicy设置为QFrame对象并为其设置布局,则可能忽略此大小策略。文档:如果有一个管理此小部件子部件的QLayout,则使用该布局指定的大小策略。如果没有这样的QLayout,则使用此函数的结果。这意味着小部件的布局应该管理小部件的大小。请注意,它仍然将尊重最小/最大宽度/高度值。
什么事情使你那样想?。拉伸因子依赖于布局中的其他小部件。文档:拉伸因子用于根据彼此的比例改变空间部件的大小。
怎么不工作?如果将QFrame设置为1,将QLabel设置为10,则QLabel对象应始终是QFrame对象的10倍宽/高(取决于布局类型)。如果您的QFrame有一个布局并且包含子布局,那么它可能无法工作,因为它将取决于子级的大小策略。
https://stackoverflow.com/questions/21435862
复制相似问题