一個簡單的情況證明是相當棘手的。在類之外訪問一個PyQT控件
我的目標是獲得一個窗口,在另一個窗口中更新窗口小部件的狀態。 爲了解釋:
我有窗口中的一些「數據」,我希望它寫進窗口B的文本編輯插件的主窗口和細節的小部件
class MainWin(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(1127, 880)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.textEdit = QtGui.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(20, 150, 1081, 661))
self.textEdit.setObjectName(_fromUtf8("textEdit"))
self.textEdit.isUndoRedoEnabled()
我是什麼目前失敗獲取是一個簡單的方法,從另一個窗口(和另一個文件)調用可以改變textEdit內的內容。 不知道我做錯了,但是當我嘗試導入類或從類中的方法我似乎總是有問題與
TypeError: unbound method updEdit() must be called with MainWin instance as first argument (got nothing instead)
我非常願意聽取建議,並感謝提前!
編輯#1
從文件Rep.py(第二個窗口,我簡單的調用)
def addTemplate(self):
data = self.textBrowser.toPlainText()
MainWin.MainWin.addText(MainWindow.MainWin,data)
self.close()
從第一個窗口,所有我需要做的是:
def addText(self,data):
self.textEdit.setText(data)
我對OOP相當陌生,所以請原諒我,如果有一些相當愚蠢的錯誤。
向你的班級添加一個方法,設置文本然後從任何你想要的地方調用它。 – multivac
顯示您嘗試調用此方法的代碼。可能你試圖在MainWin類上調用它,而不是在它的一個實例上調用它。 – mata
更新了,可能我正在做你提到的錯誤,但我不知道如何解決它 – Eloh666