python - 完全刷新 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
解决方案
推荐阅读
- php - Illuminate\Database\QueryException:SQLSTATE[HY000]:一般错误:1364 字段 'user_id' 没有默认值(SQL:插入到 `users`
- javascript - 无法在 WSL 上将 QuickJS 交叉编译为 exe
- python - 在 Python 中连接来自 3 个 excel 列的值
- java - 在添加到集合之前过滤对象的最干净方法?
- c - 内联 ARM64 系统调用给出错误的返回值
- python - Django SetUpTestData 使用 ManyToManyField 导致数据库错误
- gitlab - GitLab AutoDevops 环境问题
- css - 如何使用 Vue.js 库中预定义的 css 类?
- c++ - CHtmlEditCtrl::PrintDocument() - 靠近页面底部的行间距错误?
- blazor - Blazor(服务器端)和 Okta