Refre sh QWidget Subclass полностью - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть класс, который расширяет QWidget, и этот класс содержит несколько дочерних объектов (QWidget, QLabel).

в функции __init__ этого класса, я создаю экземпляр View и заполняю метки, все это прекрасно работает из другой объект источника данных из одноэлементного класса.

Теперь проблема в том, что я хочу, чтобы при изменении значения объекта источника данных интерфейс отображал его.

Я уже пробовал

self.update()

но не работает.

class HomeInterface(QWidget):
    def __init__(self, parent: QWidget = None):
        super(HomeInterface, self).__init__(parent)

        self.setGeometry(QRect(0, 0, parent.width() - 30 - 30, 500))
        self.setAttribute(Qt.WA_StyledBackground)       # Used For Setting Style on Super Class
        self.setObjectName("HomeInterface")
        self.setStyleSheet(Styles.HOME_INTERFACE)

        self.__createUI()

    def __createUI(self):
        builderWidget: QWidget = QWidget(self)
        builderWidget.setGeometry(20, 30, self.width() - 20 - 20, 50)

        myLabel: QLabel = QLabel(parent=builderWidget)
        myLabel.setText(myCustomClass.getInstance().getMyTextValue())

        myEditBtn: QPushButton = QPushButton(parent=builderWidget)
        myEditBtn.clicked.connect(lambda: self.__changeVarValue())

    def __changeVarValue(self):
        myCustomClass.getInstance().setMyTextValue("New Text Value")

    #TODO the UI Should reflect the changes in the variable
...