QBoxLayout中setSpacing(int)和addSpacing(int)的区别

  • setSpacing(int)是设置layout中各部件的相邻距离,如果不设置,这个距离默认是10。
  • addSpacing(int)是在setSpacing(int)的基础之上再插入间距。这个距离可以是负值,表示后一个部件会覆盖在前一个部件上面。
QHBoxLayout *Layout = new QHBoxLayout(this);
Layout->setSpacing(5);  //设置各部件的相邻距离
Layout->addSpacing(10);  //插入间距10
Layout->addWidget(IconLabel);
Layout->addSpacing(20);  //插入间距20
Layout->addWidget(TitleLabel);
Layout->addStretch(-10);  //插入间距-10,使CloseButton部分覆盖在TitleLabel上
Layout->addWidget(CloseButton);
Layout->addStretch();
Layout->setContentsMargins(0, 0, 0, 0);  //设置左上右下边距
setLayout(Layout);

按照上面代码设置后:

IconLabel和左边界的距离为10 + 5 = 15;
TitleLabel和IconLabel的距离为20 + 5 = 25;
CloseButton和TitleLabel的距离为-10 + 5 = -5,意味着CloseButton有5像素宽的部分覆盖在TitleLabel上。
————————————————
版权声明:本文为CSDN博主「hAnjiaLE1998」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43742643/article/details/100172184

原文地址:https://www.cnblogs.com/sggggr/p/12671669.html