Виджет не может быть в двух разных виджетах одновременно. Итак, вам нужно создать два Series
экземпляра (по одному для каждого SeriesHBox
).
Самый простой способ поделиться данными (скажем, содержимым вашего ярлыка) - это извлечь состояние (текст ) в другом объекте, который будет использоваться экземпляром Series
и будет обновлять их при изменении содержимого.
Быстрый пример:
class SeriesModel(QObject):
def __init__(self, parent=None):
super(SeriesModel, self).__init__(parent)
self._content = "PYQT"
contentChanged = pyqtSignal(str)
@pyqtProperty(str, notify=contentChanged)
def content(self):
return self._content
@content.setter
def content(self, value):
self._content = value
class Series(QWidget):
def __init__(self, model):
super(Series, self).__init__()
self.model = model
self.lb = QLabel(model.content)
self.model.contentChanged.connect(self.lb.setText)
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 500, 300)
box = QHBoxLayout()
self.setLayout(box)
box1 = QHBoxLayout()
box2 = QHBoxLayout()
box.addLayout(box1)
box.addLayout(box2)
model = SeriesModel(self)
series1 = Series(model)
series2 = Series(model)
box1.addWidget(SeriesHBox1(series1))
box2.addWidget(SeriesHBox2(series2))
self.show()
Если вы измените содержимое в SeriesModel
Также будут обновлены две метки.