从另一个类更改QLineEdit的文本

时间:2015-07-02 13:10:27

标签: python python-3.x pyqt pyqt5

我有两个类:MainWindow()和ModelSelection()。

我希望从ModelSelection()访​​问MainWindow()中声明的QLineEdit,以便通过QLineEdit方法更改setText()的文本。

mainWindow.py

from modelSelection import ModelSelection

def __init__(self, workingDir, filename, mode, tabAnalysis, parent=None):
    super(MainWindow,self).__init__(parent)
    self.fileLine = QLineEdit()

modelSelection.py

import mainWindow    

def openModelDialog(self):
    self.filename = QFileDialog.getOpenFileName(self, "Open File",filePath,"(*.txt)")

    if self.filename:
        mainWindow.fileLine.setText(self.filename[0])
    return self.filename

返回:AttributeError: 'module' object has no attribute 'fileLine'

2 个答案:

答案 0 :(得分:0)

你混淆了课堂和模块 模块mainWindow.py包含一个类MainWindow。属性fileLine属于类,而不属于模块。

无论如何,您不必在mainWindow中导入modelSelection.py
您已经在modelSection中导入了mainWindow.py,所以我的猜测是 mainWindowmodelSelection的父级 在这种情况下,您可以查看以下问题:Getting container/parent object from within python

答案 1 :(得分:0)

我假设您的其余代码正常工作,并且您只提供了最少的信息。添加“自我”'在这一行。

self.mainWindow.fileLine.setText(self.filename[0])