Python 如果我通过了“setLayout(),是否可以跳过调用setLayout()方法?”;“自我”;在参数列表中初始化QLayout?
考虑以下布局代码:Python 如果我通过了“setLayout(),是否可以跳过调用setLayout()方法?”;“自我”;在参数列表中初始化QLayout?,python,pyqt5,Python,Pyqt5,考虑以下布局代码: def __init__(self, parent=None): super().__init__(parent) self.layout = QtWidgets.QHBoxLayout(self) 上述代码是否与以下代码具有相同的效果 def __init__(self, parent=None): super().__init__(parent) self.layout = QtWidgets.QHBoxLayout() self
def __init__(self, parent=None):
super().__init__(parent)
self.layout = QtWidgets.QHBoxLayout(self)
上述代码是否与以下代码具有相同的效果
def __init__(self, parent=None):
super().__init__(parent)
self.layout = QtWidgets.QHBoxLayout()
self.setLayout(self.layout)
换句话说,如果我调用
qtwidts.QHBoxLayout(self)
,是否等同于调用self.setLayout
?是的,这两个代码片段具有相同的功能,如文档中所述:
调用此函数的另一种方法是将此小部件传递给布局的构造函数
请注意,您的代码还有另一个潜在错误:layout()
是Qt属性,因此不应使用self.layout=…
覆盖它,因为现有函数仍将返回当前布局