Не передается текст из QTextEdit
Есть две формы :
- 1 - основная
- 2 - диалог
В главной есть QTextEdit. Во второй форме есть переменная text. Когда я пытаюсь этой переменной текст из TextEdit передается пустая строка.
Почему ?
Фрагмент кода :
class DApp(QtWidgets.QMainWindow, TextEditorDes.Ui_Form ) :
def __init__(self) :
super().__init__()
self.setupUi(self)
self.MainTextEdit = QtWidgets.QTextEdit(Form)
self.MainTextEdit.setGeometry(QtCore.QRect(10, 10, 581, 411))
self.Dialog = Dialog(self)
self.DialogButton.clicked.connect(self.DialogFunc)
def DialogFunc() :
self.Dialog.show()
class Dialog(QWidget, DialogDes.Ui_Form) :
def __init__(self, parent) :
super().__init__()
self.setupUi(self)
self.parent = parent
self.text = self.parent.MainTextEdit.toPlainText()
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
вы прописали self.text = self.parent.mainTextEdit.toPlainText()
в методе __init__ , которая выполняется ОДИН раз и на момент инициализации
в mainTextEdit пустой.
Попробуйте так:
import sys
from PyQt5 import QtWidgets, QtCore
class Dialog(QtWidgets.QWidget): #, DialogDes.Ui_Form):
def __init__(self, parent) :
super().__init__()
# self.setupUi(self)
self.parent = parent
def printText(self): # +++
self.text = self.parent.mainTextEdit.toPlainText()
print("1", self.text)
class DApp(QtWidgets.QMainWindow): #, TextEditorDes.Ui_Form ):
def __init__(self) :
super().__init__()
# self.setupUi(self)
self.mainTextEdit = QtWidgets.QTextEdit(self) # - Form / + self
self.mainTextEdit.setGeometry(QtCore.QRect(10, 40, 581, 411))
self.dialogButton = QtWidgets.QPushButton("dialogButton", self)
self.dialogButton.clicked.connect(self.dialogFunc)
self.dialog = Dialog(self)
def dialogFunc(self): # + self
self.dialog.show()
self.dialog.printText() # +++
print("2", self.dialog.text)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = DApp()
w.resize(600, 450)
w.show()
sys.exit(app.exec_())
