problema de pyqt qloyout
Pregunta
Esto me está volviendo un poco loco. Espero que alguien pueda aclarar esto para mí. Ejecutar el siguiente código da como resultado que la primera declaración de impresión sea una lista con un elemento en el QVBoxLayout
objeto. Establecí dos objetos en layout
¿Por qué consigo solo uno?
La segunda declaración de impresión le da a dos objetos el QHBoxLayout
y QPushButton
. No es QPushButton
un hijo de layout
?
Yo esperaría layout.children()
para darme dos objetos QPushButton
y QVBoxLayout
y self.children()
para darme un objeto QHBoxLayout
. ¿Qué me estoy perdiendo?
from PySide.QtGui import *
import sys
class Main(QWidget):
def __init__(self, parent=None):
super(Main, self).__init__(parent)
layout = QHBoxLayout(self)
layout.addWidget(QPushButton("foo"))
layout.addLayout(QVBoxLayout())
print layout.children()
print self.children()
app = QApplication([])
main = Main()
main.show()
sys.exit(app.exec_())
Solución
Supongo que la nota del documentación explica esto con suficiente claridad:
Nota: Los widgets en un diseño son hijos del widget en el que se instala el diseño, no del diseño en sí. Los widgets solo pueden tener otros widgets como padre, no diseños.