Объясните как обмениваться данными между формами ??
Почему по клику
self.pushButton.clicked.connect(self.aboutshow)
Вызывается функция
aboutshow() отрабатывает вроде правильно
def aboutshow(self):
strq = self.lineEdit.text()
self.MyWin = StartMyMain()
self.MyWin.obr(strq)
print(strq)
self.close()
Передает данные в главный класс методу
obr()def obr(self,strs):
if strs:
self.ui.lineEdit.setText(strs)
Но в текстовом поле не отображается наша переменная
strs. Очень прошу объясните почему? Учу питон недавно и работа моя от программирования далека, так что сильно не пинайте за такие вопросы.
Код весь целиком
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
import time
from gui import *
from gui2 import *
from PyQt5 import QtCore, QtGui, QtWidgets
class AboutUs(QtWidgets.QMainWindow, Ui_Form):
def __init__(self,parent=None):
super().__init__(parent, QtCore.Qt.Window)
self.setupUi(self)
self.pushButton.clicked.connect(self.aboutshow)
def aboutshow(self):
strq = self.lineEdit.text()
self.MyWin = StartMyMain()
self.MyWin.obr(strq)
print(strq)
self.close()
class StartMyMain(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.AboutUs = None
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.uiAbout = AboutUs()
self.ui.pushButton.clicked.connect(self.trik)
def trik(self):
self.aboutshow1 = AboutUs()
self.aboutshow1.show()
def obr(self,strs):
if strs:
self.ui.lineEdit.setText(strs)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = StartMyMain()
myapp.show()
sys.exit(app.exec_())