首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QSizePolicy的真谛、文件和思想

QSizePolicy的真谛、文件和思想
EN

Stack Overflow用户
提问于 2014-01-29 15:47:06
回答 1查看 1.4K关注 0票数 2

我已经有两年深入的Qt布局系统的工作。在此之后,我遇到了SizePolicies和布局方面的问题。我通常会找到解决方案,但从来没有真正理解我在做什么。

现在,我花了一些时间试图正确地理解,并为他们建立一个101指南,从来没有失败。我在关于QSizePolicy of a QWidget的文档中发现了以下信息:

此属性保存小部件的默认布局行为。 如果有一个管理此小部件子部件的QLayout,则使用该布局指定的大小策略。如果没有这样的QLayout,则使用此函数的结果。

例如,我认为如果您有一个QLabel,并且将策略设置为横向扩展,垂直固定,标签本身就会发生这样的变化。但一点也不。

当我读到这篇文章时,我看到它谈到了布局中的孩子。那么,这意味着什么呢?标签里什么都没有,这就是为什么不起作用的原因吗?

WHat关于在QFrame中插入标签,并告诉帧正在扩展.QFrame是展开还是扩展(取决于在相同布局中的其他兄弟小部件),还是会扩展或扩展标签,而不是扩展QFrame?

真是一团糟..。

伸展运动怎么样?如果在添加小部件时设置拉伸10:

代码语言:javascript
复制
layout->addwidget(label, 10, Qt::AlignHCenter);

也不起作用。

当您添加小部件时,扩展0意味着:接受我告诉您的策略。默认值,取决于小部件的类型。按钮式小部件已经扩展-修复。像盒子一样的扩张.

伸展10的意思是:最大限度地生长。

我说的对吗?井。当有一个QFrame和一个QLabel在里面时,设置展开和10到标签是无效的。

EN

回答 1

Stack Overflow用户

发布于 2014-01-30 10:04:39

我不明白你所有的问题,所以我只回答那些我认为我要回答的问题。

  • 我认为,如果您有一个QLabel,并且将策略设置为横向扩展,垂直固定,标签本身就会发生这样的变化。但一点也不。

我不知道那是什么意思。你所期待的具体行为是什么以及实际发生了什么?这个标签在版面上吗?这个布局中还有其他小部件吗?

  • WHat关于在QFrame中插入标签,并告诉帧正在展开.

如果将QSizePolicy设置为QFrame对象并为其设置布局,则可能忽略此大小策略。文档:如果有一个管理此小部件子部件的QLayout,则使用该布局指定的大小策略。如果没有这样的QLayout,则使用此函数的结果。这意味着小部件的布局应该管理小部件的大小。请注意,它仍然将尊重最小/最大宽度/高度值。

  • 拉伸10的意思是:生长最大.

什么事情使你那样想?。拉伸因子依赖于布局中的其他小部件。文档:拉伸因子用于根据彼此的比例改变空间部件的大小。

  • 中有一个QFrame和一个QLabel时,设置展开和10到标签不起作用。

怎么不工作?如果将QFrame设置为1,将QLabel设置为10,则QLabel对象应始终是QFrame对象的10倍宽/高(取决于布局类型)。如果您的QFrame有一个布局并且包含子布局,那么它可能无法工作,因为它将取决于子级的大小策略。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21435862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档