pyqt4 - vboxlayout中元素之间的默认填充?

时间:2014-02-07 21:34:14

标签: python qt layout pyqt4

vboxlayout中元素之间的默认填充是什么?我自己测量并发现10px,但是想知道这是否记录在某处(我无法使用谷歌搜索找到它)。

另外,如果我在hbox中有一个vbox,我怎样才能使元素完美排列?我试图从vbox中的元素高度中减去像素来计算10px填充,但发现它仍然没有完美排列。例如,我有两个元素,所以我从每个高度减去5个像素。如何让这些排队?

感谢。

1 个答案:

答案 0 :(得分:1)

填充的默认值取决于当前的窗口小部件样式。

可以使用spacing方法检索元素之间的填充。但是您可能还需要考虑边距,可以使用getContentsMargins(在PyQt中返回四个值的元组)来检索边距。

当然,您也可以将间距和边距设置为您喜欢的任何值。

<强>更新

当布局具有窗口小部件父级时,getContentsMargins似乎仅返回默认值。顶级布局的值也可能不同,后者的值往往略大。

对于spacing,如果布局没有父级,似乎总会返回-1。如果它确实有父对象,它最终应该从父窗口小部件的样式返回适当的值。

然而,当我尝试:

    widget.style().pixelMetric(QtGui.QStyle.PM_LayoutVerticalSpacing)

我仍然得到-1,这至少可以说是令人费解的......

修改

我可以在WinXP上获得可靠的值,但在使用自定义窗口小部件样式时可能不会在Linux上获得(可能在某处有一点bug)。