繁体   English   中英

如何从 pyqt5 中的父 MainWindow class 继承自身

[英]How to inherit selfs from parent MainWindow class in pyqt5

我的Ui_MainWindow class 看起来像这样:

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(271, 429)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

        self.lbl_adres = QtWidgets.QLabel(self.centralwidget)
        self.lbl_adres.setGeometry(QtCore.QRect(30, 20, 47, 13))
        self.lbl_adres.setObjectName("lbl_adres")
...

我在父 class 之外创建了新的Connection class 并希望访问lbl_adres

class Connection(Ui_MainWindow):
    def __init__(self, parent=None):
        super().__init__()

        #I Want to access parent class element here
        print(self.lbl_adres.text())
...

但是,这个 inheritance 根本不起作用,我收到以下错误:

AttributeError: 'Connection' object has no attribute 'lbl_adres'

我了解,连接 class 不能引用 UI_MainWindow 项目,因为我写错了。 我只是想在将来更改父 class 中的某些内容,例如来自连接 class 的文本。 如何解决这个问题?

您确定要 inheritance 吗? (注:inheritance 表示“是”关系,而不是“具有”关系)。 鉴于您的问题标题,您似乎还没有真正掌握 OO(提示:“从父类继承 self”没有任何意义 - self是调用该方法的 object)。

如果是,那么您的问题来自尝试访问尚未创建的属性 - 它是Ui_MainWindow.setupUI()创建此属性,因此在您调用此方法之前它不存在。

否则,请更清楚地解释你真正想要做什么(我的意思是:解释问题,而不是你认为的解决方案)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM