Exemplo n.º 1
0
    def __init__(self):
        qt.QWidget.__init__(self, parent=None)
        layout = qt.QVBoxLayout()

        spinbox1 = qt.QSpinBox()
        spinbox2 = qt.QSpinBox()
        textEdit = qt.QTextEdit()
        button = qt.QPushButton()
        slider = qt.QSlider(q.Qt.Horizontal)

        self.model = Model()

        valueObserver = Observer()
        self.valueObserver = valueObserver
        valueObserver.bindToProperty(spinbox1, "value")
        valueObserver.bindToProperty(spinbox2, "value")
        valueObserver.bindToProperty(self.model, "value")
        valueObserver.bindToProperty(slider, "value")

        textObserver = Observer()
        self.textObserver = textObserver
        textObserver.bindToProperty(self.model, "someText")
        textObserver.bind(textEdit,
                          textEdit.setPlainText,
                          textEdit.textChanged,
                          getter=textEdit.toPlainText)

        button.clicked.connect(lambda: setattr(self.model, "value", 10))

        layout.addWidget(spinbox1)
        layout.addWidget(spinbox2)
        layout.addWidget(textEdit)
        layout.addWidget(button)
        layout.addWidget(slider)

        self.setLayout(layout)