PYQT QLAYOUT EMESSO
Domanda
Questo mi sta facendo impazzire un po '. Spero che qualcuno possa chiarire questo per me. L'esecuzione del seguente codice risulta nella prima istruzione di stampa che è un elenco con un elemento il QVBoxLayout
oggetto. Ho impostato due oggetti su layout
Perché ne ottengo solo uno?
La seconda istruzione di stampa fornisce due oggetti il QHBoxLayout
e QPushButton
. Non è QPushButton
un figlio di layout
?
Mi aspetterei layout.children()
per darmi due oggetti QPushButton
e QVBoxLayout
e self.children()
per darmi un oggetto QHBoxLayout
. Cosa mi manca?
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_())
Soluzione
Immagino che la nota del documentazione spiega questo chiaramente:
Nota: i widget in un layout sono i bambini del widget su cui è installato il layout, non del layout stesso. I widget possono avere solo altri widget come genitore, non i layout.