vboxlayout中元素之间的默认填充是什么?我自己测量并发现10px,但是想知道这是否记录在某处(我无法使用谷歌搜索找到它)。
另外,如果我在hbox中有一个vbox,我怎样才能使元素完美排列?我试图从vbox中的元素高度中减去像素来计算10px填充,但发现它仍然没有完美排列。例如,我有两个元素,所以我从每个高度减去5个像素。如何让这些排队?
感谢。
答案 0 :(得分:1)
填充的默认值取决于当前的窗口小部件样式。
可以使用spacing方法检索元素之间的填充。但是您可能还需要考虑边距,可以使用getContentsMargins(在PyQt中返回四个值的元组)来检索边距。
当然,您也可以将间距和边距设置为您喜欢的任何值。
<强>更新强>:
当布局具有窗口小部件父级时,getContentsMargins
似乎仅返回默认值。顶级布局的值也可能不同,后者的值往往略大。
对于spacing
,如果布局没有父级,似乎总会返回-1
。如果它确实有父对象,它最终应该从父窗口小部件的样式返回适当的值。
然而,当我尝试:
widget.style().pixelMetric(QtGui.QStyle.PM_LayoutVerticalSpacing)
我仍然得到-1
,这至少可以说是令人费解的......
修改强>:
我可以在WinXP上获得可靠的值,但在使用自定义窗口小部件样式时可能不会在Linux上获得(可能在某处有一点bug)。