2

PyQt の 2 つのウィンドウ間の通信に問題があります。

メインウィンドウ = UI_Form (クラス MyForm) 追加ウィンドウ = UI_Employee (クラス Employee)

AddTextButton (Ui_Employee) をクリックしたときに、LineTextEdit (UI_Form) にテキストを設定したいのですが、これは私のコードです。

import sys
from PyQt4 import QtCore, QtGui

from Form import Ui_Form
from Window import Ui_Employee

class MyForm(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)

        QtCore.QObject.connect(self.ui.AddButton,QtCore.SIGNAL("clicked()"), self.add)

    def add(self):
        self.Employee = Employee(self)
        self.Employee.show()


class Employee(QtGui.QMainWindow):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.ui = Ui_Employee()
        self.ui.setupUi(self)

        QtCore.QObject.connect(self.ui.AddRowButton,QtCore.SIGNAL('clicked()'), self.addText)

    def addText(self):
        self.Form = MyForm()
        self.Form.ui.textEdit.setText('someText')

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    myapp = MyForm()
    myapp.show()
    sys.exit(app.exec_())

addText メソッドの行に問題があります。1 行目と 2 行目は無視されます。どうしてか分かりません。

4

1 に答える 1

3

メソッドEmployee.addTextでは、新しい を作成しますMyForm。これはおそらくあなたが望むものではありません。経由myappで内部からオリジナルにアクセスできます。Employeeself.parentWidget()

class Employee(QtGui.QMainWindow):

    def addText(self):
        self.parentWidget().ui.textEdit.setText('someText')
于 2012-05-18T09:40:00.073 に答える