PyQT打开另一个ui并发送了一些文本

时间:2015-08-09 11:10:19

标签: python python-2.7 pyqt qt-designer

我有两个来自UI r的QTDesigne表单。 ParentUI打开ChildUI,必须将parentUI.QTExtEdit的文字添加到ChildUi.QListWidget。我在ChildUI中写了一个函数,它向ListWidget添加了一行,但它并没有正确地从ParentUI运行。如果我尝试添加ParentUIself.child_win.listWidget.addItem('popka')中的行,我会得到相同的结果。

这是我的父窗口:

<pre>
<code>
<!-- language: python -->

from PyQt4 import QtCore, QtGui
import sys
from list import Ui_List

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_Sender_edit(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.setupUi(self)

    def setupUi(self, Sender_edit):
        Sender_edit.setObjectName(_fromUtf8("Sender_edit"))
        Sender_edit.resize(400, 154)
        self.verticalLayout = QtGui.QVBoxLayout(Sender_edit)
        self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
        self.textEdit = QtGui.QTextEdit(Sender_edit)
        self.textEdit.setObjectName(_fromUtf8("textEdit"))
        self.verticalLayout.addWidget(self.textEdit)
        self.pushButton = QtGui.QPushButton(Sender_edit)
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.verticalLayout.addWidget(self.pushButton)

        self.retranslateUi(Sender_edit)
        QtCore.QMetaObject.connectSlotsByName(Sender_edit)

    def retranslateUi(self, Sender_edit):
        Sender_edit.setWindowTitle(QtGui.QApplication.translate("Sender_edit", "Sender_edit", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.setText(QtGui.QApplication.translate("Sender_edit", "ok", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.clicked.connect(self.send_info)

    def send_info(self):
        sender = self.textEdit.toPlainText()
        print(sender + "  lalka")
        self.showChildWindow()

    def showChildWindow(self):
        self.child_win = Ui_List()
        self.child_win.listWidget.addItem('popka')
        self.child_win.show()

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    ex = Ui_Sender_edit()
    ex.show()
    sys.exit(app.exec_())

</code>
</pre>

和子窗口:

<pre>
<code>
<!-- language: python -->

from PyQt4 import QtCore, QtGui
import sys


try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_List(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.setupUi(self)

        self.setupUi(self)
    def setupUi(self, List):
        List.setObjectName(_fromUtf8("List"))
        List.resize(400, 154)
        self.verticalLayout = QtGui.QVBoxLayout(List)
        self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
        self.listWidget = QtGui.QListWidget(List)
        self.listWidget.setObjectName(_fromUtf8("listWidget"))
        self.verticalLayout.addWidget(self.listWidget)
        self.pushButton = QtGui.QPushButton(List)
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.verticalLayout.addWidget(self.pushButton)
        self.pushButton_2 = QtGui.QPushButton(List)
        self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
        self.verticalLayout.addWidget(self.pushButton_2)

        self.retranslateUi(List)
        QtCore.QMetaObject.connectSlotsByName(List)


    def retranslateUi(self, List):
        List.setWindowTitle(QtGui.QApplication.translate("List", "LIST", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.setText(QtGui.QApplication.translate("List", "Fucking_edit", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_2.setText(QtGui.QApplication.translate("List", "Close", None, QtGui.QApplication.UnicodeUTF8))
#        self.add_lines('fuck')

    def add_lines(self, line):
        self.listWidget.addItem(line)



if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    ex = Ui_List()
    ex.show()
    sys.exit(app.exec_())

</code>
</pre>

如何从一个窗口向另一个窗口发送信息?

提前致谢= _)

0 个答案:

没有答案