2
I’m learning Python, version 3.7 with Pyqt5 (Qt Designer)
I’m trying to define the value of a label using modules, in window 1 it calls the function and works, but when I open window 2 and click on the button it triggers the function but passes the self of the current window (window 2) where there is no label, generating the following error:
Traceback (most recent call last):
  File "\template\config.py", line 18, in returnMain
    fun1(self)
  File "\modulos\functions.py", line 7, in fun1
    lbl = int(self.ui.lblTest.text())
AttributeError: 'Ui_window2' object has no attribute 'lblTest'
I need it to use the self function of window 1.
I replicated the error in small files, it works until clicking the button of the second window that gives the described error.
Follow the code structure in the directory:
Follow the files.
run.py (used to startar the program)
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
import sys
from template.main import MainScreen
if __name__ == "__main__":
    app = QApplication(sys.argv)
    main = MainScreen()
    main.show()
sys.exit(app.exec_())
Gui/window1.py (main window)
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_window1(object):
    def setupUi(self, win1):
        win1.setObjectName("win1")
        win1.resize(297, 219)
        self.centralwidget = QtWidgets.QWidget(win1)
        self.centralwidget.setObjectName("centralwidget")
        self.btnConfig = QtWidgets.QPushButton(self.centralwidget)
        self.btnConfig.setGeometry(QtCore.QRect(110, 150, 75, 23))
        self.btnConfig.setObjectName("btnConfig")
        self.lblTest = QtWidgets.QLabel(self.centralwidget)
        self.lblTest.setGeometry(QtCore.QRect(120, 70, 47, 13))
        self.lblTest.setObjectName("lblTest")
        win1.setCentralWidget(self.centralwidget)
        self.retranslateUi(win1)
        QtCore.QMetaObject.connectSlotsByName(win1)
    def retranslateUi(self, win1):
        _translate = QtCore.QCoreApplication.translate
        win1.setWindowTitle(_translate("win1", "Window 1"))
        self.btnConfig.setText(_translate("win1", "Open config"))
        self.lblTest.setText(_translate("win1", "0"))
Gui/window2.py (settings window)
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_window2(object):
    def setupUi(self, win2):
        win2.setObjectName("win2")
        win2.resize(222, 241)
        self.centralwidget = QtWidgets.QWidget(win2)
        self.centralwidget.setObjectName("centralwidget")
        self.btnReturn = QtWidgets.QPushButton(self.centralwidget)
        self.btnReturn.setGeometry(QtCore.QRect(70, 120, 75, 23))
        self.btnReturn.setObjectName("btnReturn")
        win2.setCentralWidget(self.centralwidget)
        self.retranslateUi(win2)
        QtCore.QMetaObject.connectSlotsByName(win2)
    def retranslateUi(self, win2):
        _translate = QtCore.QCoreApplication.translate
        win2.setWindowTitle(_translate("win2", "Window 2"))
        self.btnReturn.setText(_translate("win2", "Return Main"))
modulos/functions.py (where the functions will be)
from PyQt5.QtWidgets import *
from template import main
def fun1(self):
    lbl = int(self.ui.lblTest.text())
    lbl = (lbl+1)
    self.ui.lblTest.setText(str(lbl))
template/config.py (where I will handle settings)
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
from gui.window2 import *
from modulos.functions import fun1
class ConfigScreen(QMainWindow):
   
    def __init__(self,*args,**argsv):        
        super(ConfigScreen,self).__init__(*args,**argsv)
        self.ui = Ui_window2()
        self.ui.setupUi(self)
        self.ui.btnReturn.clicked.connect(self.returnMain)
    def returnMain(self):
        fun1(self)
        self.close()
template/main.py (main module of the program)
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
from gui.window1 import *
from template.config import ConfigScreen
from modulos.functions import fun1
class MainScreen(QMainWindow):
   
    def __init__(self,*args,**argsv):        
        super(MainScreen,self).__init__(*args,**argsv)
        self.ui = Ui_window1()
        self.ui.setupUi(self)
        self.ui.btnConfig.clicked.connect(self.openConfig)
        fun1(self)
    def openConfig(self):        
        self.config = ConfigScreen()
        self.config.show()
Remember, what is simple for you can be very difficult for others. I’m 1 week trying to solve and I can’t, I was programming a long time ago and I’m trying/needing to learn something new

Maurice, welcome to our community. I really liked his final sentence and, as my former director would say: "Everything is very easy for those who do nothing." Every beginning or resumption of a study requires a lot of effort and I hope you can achieve your goals there! You’ve worked it out very well and I’m sure someone will help you.
– Mateus