盒模型的四层
跳转到“盒模型的四层”由内向外依次是内容、padding、border、margin:
margin:控件盒外的空间└─ border:边框 └─ padding:边框内侧到内容的空间 └─ content:文字、图标等内容
例如按钮文字离边框太近,应考虑 padding;多个按钮彼此太近,通常先检查布局 spacing。两者可能看似都“产生空白”,但影响的对象不同。
宽度关系
跳转到“宽度关系”在内容宽为 的示意模型中,边框外缘宽度为:
外部再加左右 margin 才是该示意下的完整占位。Web CSS 还需考虑 box-sizing、布局算法与 margin 折叠等规则,不能把一个公式机械套给所有布局。原文旧 Internet Explorer 对照图属于历史盒宽差异,不作为当前规则。
Qt QSS 与 QLayout 分开使用
跳转到“Qt QSS 与 QLayout 分开使用”QSS 对支持盒模型的控件提供 margin、border、padding 等样式属性,但并非完整浏览器 CSS 实现。QSS 参考
QPushButton { padding: 6px 12px; border: 1px solid #63758a; border-radius: 4px;}布局中的外缘与控件间距由布局管理器控制:
layout->setContentsMargins(16, 16, 16, 16); // 左、上、右、下layout->setSpacing(8); // 相邻布局项之间contentsMargins 属于布局四边留白,spacing 属于布局项之间的距离;它们不等同于每个子控件的 QSS padding。QLayout
调整顺序
跳转到“调整顺序”先用布局管理器建立结构和间距,再调控件内部 padding、字体与边框。检查不同窗口宽度、长文本、高 DPI 与键盘焦点状态。避免同时在父布局、子布局和所有控件叠加相同 margin,造成难以解释的空白。
原始记录
跳转到“原始记录”本笔记由 CSDN 原始记录 的文字与图片重新整理;正文中的代码、适用条件与说明已按本次审读补充。