首页 > 解决方案 > 完全刷新 QWidget 子类

问题描述

我有一个扩展 QWidget 的类,这个类包含多个孩子(QWidget,QLabel)。

在此类的 __init__ 函数中,我实例化了 View 并填充了标签,所有这些都可以从单例类的另一个数据源对象中正常工作。

现在的问题是,当我更改数据源对象的值时,我希望 UI 应该反映它。

我已经试过了

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

标签: pythonpyside2

解决方案


推荐阅读