如何从pyqt5中的父主窗口类继承self

2024-03-28 19:02:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我的Ui_MainWindow类如下所示:

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")
...

我在父类之外的下面创建了新的Connection类,并希望获得对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())
...

但是,此继承根本不起作用,我得到以下错误:

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

我明白,连接类不能引用UI\U主窗口项,因为我写错了。我只是想在将来的父类中更改一些东西,比如连接类中的文本。如何解决


Tags: selfuiobjectinitdefconnectionclassparent
1条回答
网友
1楼 · 发布于 2024-03-28 19:02:48

你确定要继承遗产吗(注意:继承意味着“是一种”关系,而不是“有一种”关系)。给出问题的标题,您似乎还没有真正理解OO(提示:“从父类继承self”没有任何意义-self是调用方法的对象)

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

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

相关问题 更多 >