我不知道如何强制 pyuic4 生成 QSpacerItem 作为 .py 文件中的类成员。其他所有内容都作为类的成员生成,例如 gridLayout
self.gridLay = QtGui.QGridLayout()
除了 QSpacerItem 之外的所有内容
spacerItem = QtGui.QSpacerItem(20, 0, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
self.gridLay.addItem(spacerItem, 0, 2, 1, 1)
知道如何纠正这个问题吗?
PS 我不会问如何手动纠正它;)。
最佳答案
您无法通过 pyuic4
接口(interface)更改此行为。
但是,pyuic4
是用 PyQt 编写的,因此如果您想进行黑客攻击,相关代码位于 PyQt4/uic/uiparser.py
中。具体来说,是 UIParser
类的 createSpacer
和 setupObject
方法。 setupObject
方法通常用于为对象创建属性,但显然 createSpacer
方法当前不使用它。
我不确定为什么现在要这样做。要获得明确的答案,您可能需要通过 PyQt Mailing List 询问项目维护人员 (Phil Thompson)。 .
另请注意,如果您知道间隔符在网格布局中的位置,则可以按如下方式访问它:
self.gridLay.itemAtPosition(row, column).spacerItem()
关于python - PyQt4 pyuic4 spacerItem 作为类的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8781229/