question PyQt QLayout
Question
Ce me rend un peu fou. quelqu'un l'espoir peut effacer cela pour moi. Exécution des résultats de code suivant dans la première déclaration d'impression étant une liste avec un élément de l'objet de QVBoxLayout
. Je mis deux objets à layout
pourquoi puis-je obtenir une seule?
La deuxième instruction d'impression donne deux objets et la QHBoxLayout
QPushButton
. N'est pas QPushButton
un enfant de layout
?
je me attends layout.children()
pour me donner deux objets QPushButton
et QVBoxLayout
et self.children()
pour me donner un QHBoxLayout
objet. Qu'est-ce que je manque?
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_())
La solution
Je suppose que la note de la documentation explique assez clairement:
Note: Widgets dans une mise en page sont les enfants du widget sur lequel le la mise en page est installé, et non de la mise en page elle-même. Widgets ne peuvent avoir d'autres widgets comme parent, pas les dispositions.