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_())
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top