setSpacing的用法?

中才德创 2010-09-09 02:37:45
m_pVBoxLayout->setContentsMargins (20, 20, 20, 20);
m_pVBoxLayout->addWidget(m_topCaptionButton); //1
m_pVBoxLayout->addWidget(m_pShadowDialog); //2
m_pVBoxLayout->setSpacing(15);
m_pVBoxLayout->addLayout (m_pHBoxLayoutButton); //3
m_pVBoxLayout->addStretch();


1与2的间隔,应是默认的spacing。而2与3的间隔,应是设进去的15。但更改15这个值,感到1与2的间隔也在变。

这是为什么?
...全文
1053 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lefttime 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hawkofwinter 的回复:]

m_pVBoxLayout->addWidget(m_topCaptionButton); //1
m_pVBoxLayout->addWidget(m_pShadowDialog); //2
m_pVBoxLayout->addLayout (m_pHBoxLayoutButton); //3
如果希望1与2间隔25,2与3间隔15。如何做呢?
[/Quote]
#5方法针对于QBoxLayout可行~``
一般情况下, 建议将1和2作为一组放入到一个widget(假设名为widgetGroup)中, 然后将这个widget中的spacing设置成25;
而设置m_pVBoxLayout的间隔为15就可以了, 此时就变成widgetGroup和3的间隔为15, 间接达到的效果~``
mercedes2 2010-09-09
  • 打赏
  • 举报
回复
用addSpacing......
中才德创 2010-09-09
  • 打赏
  • 举报
回复
m_pVBoxLayout->addWidget(m_topCaptionButton); //1
m_pVBoxLayout->addWidget(m_pShadowDialog); //2
m_pVBoxLayout->addLayout (m_pHBoxLayoutButton); //3
如果希望1与2间隔25,2与3间隔15。如何做呢?
lefttime 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hawkofwinter 的回复:]

C/C++ code
m_pVBoxLayout->setContentsMargins (20, 20, 20, 20);
m_pVBoxLayout->addWidget(m_topCaptionButton); //1
m_pVBoxLayout->setSpacing(25);
m_pVBoxLayout->addWidget(m_pShadowDialog); //2
m_pVBox……
[/Quote]
会起作用, 但被后面那条语句覆盖了而已, 因为它们修改的是相同的属性~``
中才德创 2010-09-09
  • 打赏
  • 举报
回复
m_pVBoxLayout->setContentsMargins (20, 20, 20, 20);
m_pVBoxLayout->addWidget(m_topCaptionButton); //1
m_pVBoxLayout->setSpacing(25);
m_pVBoxLayout->addWidget(m_pShadowDialog); //2
m_pVBoxLayout->setSpacing(15);
m_pVBoxLayout->addLayout (m_pHBoxLayoutButton); //3
m_pVBoxLayout->addStretch();

是不是m_pVBoxLayout->setSpacing(25)根本不会起作用?只是后来的m_pVBoxLayout->setSpacing(15)才有效?
lefttime 2010-09-09
  • 打赏
  • 举报
回复
spacing是针对于layout内部控件的间距, 与控件的添加顺序无关(contentsMargins也一样, 只和控件间的层次有关); 例如VBoxLayout, 则是当前子控件的纵向间距受spacing值的影响 ~``

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧