Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. How to call QPushButton and QLineEdit from window 2
Qt 6.11 is out! See what's new in the release blog

How to call QPushButton and QLineEdit from window 2

Scheduled Pinned Locked Moved Unsolved Qt for Python
15 Posts 3 Posters 3.7k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    California
    wrote on last edited by
    #5

    Well, I know it must be defined in this part of the code below, I just don't know how. Would you be so kind to writte few lines for Button, for example?

    class Ui_SCADA(object):
        def open_Login_Window(self):    
            self.window = QtWidgets.QDialog()
            self.ui = Ui_Dialog()
            self.ui.setupUi(self.window)        
            self.window.show()
            
        def setupUi(self, SCADA):
            SCADA.setObjectName("SCADA")
            SCADA.resize(888, 665)
    
    jsulmJ 1 Reply Last reply
    0
    • C California

      Well, I know it must be defined in this part of the code below, I just don't know how. Would you be so kind to writte few lines for Button, for example?

      class Ui_SCADA(object):
          def open_Login_Window(self):    
              self.window = QtWidgets.QDialog()
              self.ui = Ui_Dialog()
              self.ui.setupUi(self.window)        
              self.window.show()
              
          def setupUi(self, SCADA):
              SCADA.setObjectName("SCADA")
              SCADA.resize(888, 665)
      
      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #6

      @California There is really not much to it:

      class Ui_Dialog(object):
      ...
          def userName(self):
              return self.lineEdit_user_name.text()
      # Same for all other text edits you need
      

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      1
      • C Offline
        C Offline
        California
        wrote on last edited by
        #7

        Thanks for help.
        Ok, for my knowledge is quite big chalenge. It works now in second window (code below), but how to pass variable un into main?

        # -*- coding: utf-8 -*-
        
        # Form implementation generated from reading ui file 'login.ui'
        #
        # Created by: PyQt5 UI code generator 5.15.2
        #
        # WARNING: Any manual changes made to this file will be lost when pyuic5 is
        # run again.  Do not edit this file unless you know what you are doing.
        
        
        from PyQt5 import QtCore, QtGui, QtWidgets
        
        try:
            _fromUtf8 = QtCore.QString.fromUtf8
        except AttributeError:
            def _fromUtf8(s):
                return s
        
        try:
            _encoding = QtGui.QApplication.UnicodeUTF8
            def _translate(context, text, disambig):
                return QtGui.QApplication.translate(context, text, disambig, _encoding)
        except AttributeError:
            def _translate(context, text, disambig):
                return QtGui.QApplication.translate(context, text, disambig)
        
        class Ui_Dialog(object):
            def user_Name(self):
                un = self.lineEdit_user_name.text()
                print(un)
                return un
        
            def pass_Word(self):
                pw = self.lineEdit_password.text()
                print(pw)
                return pw
            
            def prijava(self):
                print("Prijava")
                self.user_Name()
                self.pass_Word()
                
            def setupUi(self, Dialog):
                Dialog.setObjectName("Dialog")
                Dialog.resize(400, 300)
                self.bgwidget = QtWidgets.QWidget(Dialog)
                self.bgwidget.setGeometry(QtCore.QRect(-1, -1, 401, 301))
                self.bgwidget.setStyleSheet("QWidget#bgwidget{\n"
        "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));}")
                self.bgwidget.setObjectName("bgwidget")
                self.label = QtWidgets.QLabel(self.bgwidget)
                self.label.setGeometry(QtCore.QRect(160, 30, 91, 31))
                font = QtGui.QFont()
                font.setPointSize(20)
                self.label.setFont(font)
                self.label.setStyleSheet("color: rgb(255, 255, 127);")
                self.label.setObjectName("label")
                #self.pushButton_Log_in = QtWidgets.QPushButton(self.bgwidget)
                self.pushButton_Log_in = QtWidgets.QPushButton(self.bgwidget, clicked = lambda: self.prijava())
                self.pushButton_Log_in.setGeometry(QtCore.QRect(140, 230, 121, 30))
                self.pushButton_Log_in.setStyleSheet("color: rgb(255, 255, 127);\n"
        "background-color: rgb(99, 99, 99);")
                self.pushButton_Log_in.setObjectName("pushButton_Log_in")
                self.lineEdit_user_name = QtWidgets.QLineEdit(self.bgwidget)
                self.lineEdit_user_name.setGeometry(QtCore.QRect(140, 110, 121, 30))
                self.lineEdit_user_name.setObjectName("lineEdit_user_name")
                self.lineEdit_password = QtWidgets.QLineEdit(self.bgwidget)
                #self.lineEdit_password = QtWidgets.setEchoMode.QLineEdit(self.bgwidget)
                self.lineEdit_password.setGeometry(QtCore.QRect(140, 170, 121, 30))
                self.lineEdit_password.setObjectName("lineEdit_password")
                self.label_2 = QtWidgets.QLabel(self.bgwidget)
                self.label_2.setGeometry(QtCore.QRect(60, 120, 68, 22))
                self.label_2.setStyleSheet("color: rgb(255, 255, 127);")
                self.label_2.setObjectName("label_2")
                self.label_3 = QtWidgets.QLabel(self.bgwidget)
                self.label_3.setGeometry(QtCore.QRect(60, 180, 68, 22))
                self.label_3.setStyleSheet("color: rgb(255, 255, 127);")
                self.label_3.setObjectName("label_3")
        
                self.retranslateUi(Dialog)
                QtCore.QMetaObject.connectSlotsByName(Dialog)
        
            def retranslateUi(self, Dialog):
                _translate = QtCore.QCoreApplication.translate
                Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
                self.label.setText(_translate("Dialog", "Prijava"))
                self.pushButton_Log_in.setText(_translate("Dialog", "Prijava"))
                self.label_2.setText(_translate("Dialog", "Up. ime"))
                self.label_3.setText(_translate("Dialog", "Geslo"))
        
        
        if __name__ == "__main__":
            import sys
            app = QtWidgets.QApplication(sys.argv)
            Dialog = QtWidgets.QDialog()
            ui = Ui_Dialog()
            ui.setupUi(Dialog)
            Dialog.show()
            sys.exit(app.exec_())
        
        
        jsulmJ SGaistS 2 Replies Last reply
        0
        • C California

          Thanks for help.
          Ok, for my knowledge is quite big chalenge. It works now in second window (code below), but how to pass variable un into main?

          # -*- coding: utf-8 -*-
          
          # Form implementation generated from reading ui file 'login.ui'
          #
          # Created by: PyQt5 UI code generator 5.15.2
          #
          # WARNING: Any manual changes made to this file will be lost when pyuic5 is
          # run again.  Do not edit this file unless you know what you are doing.
          
          
          from PyQt5 import QtCore, QtGui, QtWidgets
          
          try:
              _fromUtf8 = QtCore.QString.fromUtf8
          except AttributeError:
              def _fromUtf8(s):
                  return s
          
          try:
              _encoding = QtGui.QApplication.UnicodeUTF8
              def _translate(context, text, disambig):
                  return QtGui.QApplication.translate(context, text, disambig, _encoding)
          except AttributeError:
              def _translate(context, text, disambig):
                  return QtGui.QApplication.translate(context, text, disambig)
          
          class Ui_Dialog(object):
              def user_Name(self):
                  un = self.lineEdit_user_name.text()
                  print(un)
                  return un
          
              def pass_Word(self):
                  pw = self.lineEdit_password.text()
                  print(pw)
                  return pw
              
              def prijava(self):
                  print("Prijava")
                  self.user_Name()
                  self.pass_Word()
                  
              def setupUi(self, Dialog):
                  Dialog.setObjectName("Dialog")
                  Dialog.resize(400, 300)
                  self.bgwidget = QtWidgets.QWidget(Dialog)
                  self.bgwidget.setGeometry(QtCore.QRect(-1, -1, 401, 301))
                  self.bgwidget.setStyleSheet("QWidget#bgwidget{\n"
          "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));}")
                  self.bgwidget.setObjectName("bgwidget")
                  self.label = QtWidgets.QLabel(self.bgwidget)
                  self.label.setGeometry(QtCore.QRect(160, 30, 91, 31))
                  font = QtGui.QFont()
                  font.setPointSize(20)
                  self.label.setFont(font)
                  self.label.setStyleSheet("color: rgb(255, 255, 127);")
                  self.label.setObjectName("label")
                  #self.pushButton_Log_in = QtWidgets.QPushButton(self.bgwidget)
                  self.pushButton_Log_in = QtWidgets.QPushButton(self.bgwidget, clicked = lambda: self.prijava())
                  self.pushButton_Log_in.setGeometry(QtCore.QRect(140, 230, 121, 30))
                  self.pushButton_Log_in.setStyleSheet("color: rgb(255, 255, 127);\n"
          "background-color: rgb(99, 99, 99);")
                  self.pushButton_Log_in.setObjectName("pushButton_Log_in")
                  self.lineEdit_user_name = QtWidgets.QLineEdit(self.bgwidget)
                  self.lineEdit_user_name.setGeometry(QtCore.QRect(140, 110, 121, 30))
                  self.lineEdit_user_name.setObjectName("lineEdit_user_name")
                  self.lineEdit_password = QtWidgets.QLineEdit(self.bgwidget)
                  #self.lineEdit_password = QtWidgets.setEchoMode.QLineEdit(self.bgwidget)
                  self.lineEdit_password.setGeometry(QtCore.QRect(140, 170, 121, 30))
                  self.lineEdit_password.setObjectName("lineEdit_password")
                  self.label_2 = QtWidgets.QLabel(self.bgwidget)
                  self.label_2.setGeometry(QtCore.QRect(60, 120, 68, 22))
                  self.label_2.setStyleSheet("color: rgb(255, 255, 127);")
                  self.label_2.setObjectName("label_2")
                  self.label_3 = QtWidgets.QLabel(self.bgwidget)
                  self.label_3.setGeometry(QtCore.QRect(60, 180, 68, 22))
                  self.label_3.setStyleSheet("color: rgb(255, 255, 127);")
                  self.label_3.setObjectName("label_3")
          
                  self.retranslateUi(Dialog)
                  QtCore.QMetaObject.connectSlotsByName(Dialog)
          
              def retranslateUi(self, Dialog):
                  _translate = QtCore.QCoreApplication.translate
                  Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
                  self.label.setText(_translate("Dialog", "Prijava"))
                  self.pushButton_Log_in.setText(_translate("Dialog", "Prijava"))
                  self.label_2.setText(_translate("Dialog", "Up. ime"))
                  self.label_3.setText(_translate("Dialog", "Geslo"))
          
          
          if __name__ == "__main__":
              import sys
              app = QtWidgets.QApplication(sys.argv)
              Dialog = QtWidgets.QDialog()
              ui = Ui_Dialog()
              ui.setupUi(Dialog)
              Dialog.show()
              sys.exit(app.exec_())
          
          
          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #8

          @California said in How to call QPushButton and QLineEdit from window 2:

          but how to pass variable un into main?

          Please explain better.
          What variable and what is "main"?

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • C California

            Thanks for help.
            Ok, for my knowledge is quite big chalenge. It works now in second window (code below), but how to pass variable un into main?

            # -*- coding: utf-8 -*-
            
            # Form implementation generated from reading ui file 'login.ui'
            #
            # Created by: PyQt5 UI code generator 5.15.2
            #
            # WARNING: Any manual changes made to this file will be lost when pyuic5 is
            # run again.  Do not edit this file unless you know what you are doing.
            
            
            from PyQt5 import QtCore, QtGui, QtWidgets
            
            try:
                _fromUtf8 = QtCore.QString.fromUtf8
            except AttributeError:
                def _fromUtf8(s):
                    return s
            
            try:
                _encoding = QtGui.QApplication.UnicodeUTF8
                def _translate(context, text, disambig):
                    return QtGui.QApplication.translate(context, text, disambig, _encoding)
            except AttributeError:
                def _translate(context, text, disambig):
                    return QtGui.QApplication.translate(context, text, disambig)
            
            class Ui_Dialog(object):
                def user_Name(self):
                    un = self.lineEdit_user_name.text()
                    print(un)
                    return un
            
                def pass_Word(self):
                    pw = self.lineEdit_password.text()
                    print(pw)
                    return pw
                
                def prijava(self):
                    print("Prijava")
                    self.user_Name()
                    self.pass_Word()
                    
                def setupUi(self, Dialog):
                    Dialog.setObjectName("Dialog")
                    Dialog.resize(400, 300)
                    self.bgwidget = QtWidgets.QWidget(Dialog)
                    self.bgwidget.setGeometry(QtCore.QRect(-1, -1, 401, 301))
                    self.bgwidget.setStyleSheet("QWidget#bgwidget{\n"
            "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));}")
                    self.bgwidget.setObjectName("bgwidget")
                    self.label = QtWidgets.QLabel(self.bgwidget)
                    self.label.setGeometry(QtCore.QRect(160, 30, 91, 31))
                    font = QtGui.QFont()
                    font.setPointSize(20)
                    self.label.setFont(font)
                    self.label.setStyleSheet("color: rgb(255, 255, 127);")
                    self.label.setObjectName("label")
                    #self.pushButton_Log_in = QtWidgets.QPushButton(self.bgwidget)
                    self.pushButton_Log_in = QtWidgets.QPushButton(self.bgwidget, clicked = lambda: self.prijava())
                    self.pushButton_Log_in.setGeometry(QtCore.QRect(140, 230, 121, 30))
                    self.pushButton_Log_in.setStyleSheet("color: rgb(255, 255, 127);\n"
            "background-color: rgb(99, 99, 99);")
                    self.pushButton_Log_in.setObjectName("pushButton_Log_in")
                    self.lineEdit_user_name = QtWidgets.QLineEdit(self.bgwidget)
                    self.lineEdit_user_name.setGeometry(QtCore.QRect(140, 110, 121, 30))
                    self.lineEdit_user_name.setObjectName("lineEdit_user_name")
                    self.lineEdit_password = QtWidgets.QLineEdit(self.bgwidget)
                    #self.lineEdit_password = QtWidgets.setEchoMode.QLineEdit(self.bgwidget)
                    self.lineEdit_password.setGeometry(QtCore.QRect(140, 170, 121, 30))
                    self.lineEdit_password.setObjectName("lineEdit_password")
                    self.label_2 = QtWidgets.QLabel(self.bgwidget)
                    self.label_2.setGeometry(QtCore.QRect(60, 120, 68, 22))
                    self.label_2.setStyleSheet("color: rgb(255, 255, 127);")
                    self.label_2.setObjectName("label_2")
                    self.label_3 = QtWidgets.QLabel(self.bgwidget)
                    self.label_3.setGeometry(QtCore.QRect(60, 180, 68, 22))
                    self.label_3.setStyleSheet("color: rgb(255, 255, 127);")
                    self.label_3.setObjectName("label_3")
            
                    self.retranslateUi(Dialog)
                    QtCore.QMetaObject.connectSlotsByName(Dialog)
            
                def retranslateUi(self, Dialog):
                    _translate = QtCore.QCoreApplication.translate
                    Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
                    self.label.setText(_translate("Dialog", "Prijava"))
                    self.pushButton_Log_in.setText(_translate("Dialog", "Prijava"))
                    self.label_2.setText(_translate("Dialog", "Up. ime"))
                    self.label_3.setText(_translate("Dialog", "Geslo"))
            
            
            if __name__ == "__main__":
                import sys
                app = QtWidgets.QApplication(sys.argv)
                Dialog = QtWidgets.QDialog()
                ui = Ui_Dialog()
                ui.setupUi(Dialog)
                Dialog.show()
                sys.exit(app.exec_())
            
            
            SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #9
            Dialog.exec_()
            print(Dialog.user_Name()
            

            Please use proper casing for your method, variable and class names. Although it doesn't matter for your machine, the humans reading your code will have a very hard time.

            Follow the PEP8 document

            • Variable names in lower case
            • function name in snake_case, no uppercase mixed in there

            Qt uses camelCase for its functions because they come from the C++ style guide lines they are using although you can change that with the latest version of PySide6.

            Beside that, since as you said you are a beginner, you should take the time to read the documentation and tutorials provided by Qt's documentation. You'll learn quite a lot there to get the basics going properly.

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            1 Reply Last reply
            1
            • C Offline
              C Offline
              California
              wrote on last edited by
              #10

              I couldnt imagine, ading extra window for log in could make so big troubles for me.
              I'ii post top parts of the code for modules: main.py, gui_91.py and login_window.py so you can get the picture, couse obviously I can't explain correct what I would like to do. There are some other modules involved, but they are not important for description of my problem. Thanks for all your help and please forgive me my poor knowledge, programming is my free time pleassure.

              main.py (gui_91.py is imported here)

              import RPi.GPIO as GPIO
              from subprocess import call
              import gui_91
              import sys
              import os
              from datetime import datetime
              from slaves import *
              from Buffer_script_02 import *
              from graph_08c import *  
              from kalkulacije import *
              from xls_store_8 import*
              
              from PyQt5 import QtCore, QtGui, QtWidgets
              from PyQt5.QtWidgets import QMainWindow, QApplication
              from PyQt5.QtCore import QTimer
              import time
              
              ...
              

              gui_91.py (login_window.py is imported here)

              from PyQt5 import QtCore, QtGui, QtWidgets
              
              from login_window import Ui_Dialog
              
              try:
                  _fromUtf8 = QtCore.QString.fromUtf8
              except AttributeError:
                  def _fromUtf8(s):
                      return s
              
              try:
                  _encoding = QtGui.QApplication.UnicodeUTF8
                  def _translate(context, text, disambig):
                      return QtGui.QApplication.translate(context, text, disambig, _encoding)
              except AttributeError:
                  def _translate(context, text, disambig):
                      return QtGui.QApplication.translate(context, text, disambig)
              
              class Ui_SCADA(object):
                  
                  #-----------------------------------------------------------------------------------------------
                  def open_Login_Window(self):    
                      self.window = QtWidgets.QDialog()
                      self.ui = Ui_Dialog()
                      self.ui.setupUi(self.window)        
                      self.window.show()  
                  #-----------------------------------------------------------------------------------------------
                      
                  def setupUi(self, SCADA):
                      SCADA.setObjectName("SCADA")
                      SCADA.resize(888, 665)
              
              ...
              

              login_window.py (I want to use methods "user_Name" and "pass_Word" in main.py or in gui_91.py)

              # -*- coding: utf-8 -*-
              
              # Form implementation generated from reading ui file 'login.ui'
              #
              # Created by: PyQt5 UI code generator 5.15.2
              #
              # WARNING: Any manual changes made to this file will be lost when pyuic5 is
              # run again.  Do not edit this file unless you know what you are doing.
              
              
              from PyQt5 import QtCore, QtGui, QtWidgets
              
              try:
                  _fromUtf8 = QtCore.QString.fromUtf8
              except AttributeError:
                  def _fromUtf8(s):
                      return s
              
              try:
                  _encoding = QtGui.QApplication.UnicodeUTF8
                  def _translate(context, text, disambig):
                      return QtGui.QApplication.translate(context, text, disambig, _encoding)
              except AttributeError:
                  def _translate(context, text, disambig):
                      return QtGui.QApplication.translate(context, text, disambig)
              
              class Ui_Dialog(object):
                  def user_Name(self):
                      un = self.lineEdit_user_name.text()
                      print(un)
                      return un
              
                  def pass_Word(self):
                      pw = self.lineEdit_password.text()
                      print(pw)
                      return pw
                  
                  def log_IN(self):
                      print("Log In")
                      self.user_Name()
                      self.pass_Word()
                      
                  def setupUi(self, Dialog):
                      Dialog.setObjectName("Dialog")
                      Dialog.resize(400, 300)
                      self.bgwidget = QtWidgets.QWidget(Dialog)
                      self.bgwidget.setGeometry(QtCore.QRect(-1, -1, 401, 301))
                      self.bgwidget.setStyleSheet("QWidget#bgwidget{\n"
              "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));}")
                      self.bgwidget.setObjectName("bgwidget")
                      self.label = QtWidgets.QLabel(self.bgwidget)
                      self.label.setGeometry(QtCore.QRect(160, 30, 91, 31))
                      font = QtGui.QFont()
                      font.setPointSize(20)
                      self.label.setFont(font)
                      self.label.setStyleSheet("color: rgb(255, 255, 127);")
                      self.label.setObjectName("label")
                      #self.pushButton_Log_in = QtWidgets.QPushButton(self.bgwidget)
                      self.pushButton_Log_in = QtWidgets.QPushButton(self.bgwidget, clicked = lambda: log_IN())
                      self.pushButton_Log_in.setGeometry(QtCore.QRect(140, 230, 121, 30))
                      self.pushButton_Log_in.setStyleSheet("color: rgb(255, 255, 127);\n"
              "background-color: rgb(99, 99, 99);")
                      self.pushButton_Log_in.setObjectName("pushButton_Log_in")
                      self.lineEdit_user_name = QtWidgets.QLineEdit(self.bgwidget)
                      self.lineEdit_user_name.setGeometry(QtCore.QRect(140, 110, 121, 30))
                      self.lineEdit_user_name.setObjectName("lineEdit_user_name")
                      self.lineEdit_password = QtWidgets.QLineEdit(self.bgwidget)
                      self.lineEdit_password.setGeometry(QtCore.QRect(140, 170, 121, 30))
                      self.lineEdit_password.setObjectName("lineEdit_password")
                      self.label_2 = QtWidgets.QLabel(self.bgwidget)
                      self.label_2.setGeometry(QtCore.QRect(60, 120, 68, 22))
                      self.label_2.setStyleSheet("color: rgb(255, 255, 127);")
                      self.label_2.setObjectName("label_2")
                      self.label_3 = QtWidgets.QLabel(self.bgwidget)
                      self.label_3.setGeometry(QtCore.QRect(60, 180, 68, 22))
                      self.label_3.setStyleSheet("color: rgb(255, 255, 127);")
                      self.label_3.setObjectName("label_3")
              
                      self.retranslateUi(Dialog)
                      QtCore.QMetaObject.connectSlotsByName(Dialog)
              
                  def retranslateUi(self, Dialog):
                      _translate = QtCore.QCoreApplication.translate
                      Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
                      self.label.setText(_translate("Dialog", "Prijava"))
                      self.pushButton_Log_in.setText(_translate("Dialog", "Prijava"))
                      self.label_2.setText(_translate("Dialog", "Up. ime"))
                      self.label_3.setText(_translate("Dialog", "Geslo"))
              
              
              if __name__ == "__main__":
                  import sys
                  app = QtWidgets.QApplication(sys.argv)
                  Dialog = QtWidgets.QDialog()
                  ui = Ui_Dialog()
                  ui.setupUi(Dialog)
                  Dialog.show()
                  sys.exit(app.exec_())
              
              
              jsulmJ 1 Reply Last reply
              0
              • C California

                I couldnt imagine, ading extra window for log in could make so big troubles for me.
                I'ii post top parts of the code for modules: main.py, gui_91.py and login_window.py so you can get the picture, couse obviously I can't explain correct what I would like to do. There are some other modules involved, but they are not important for description of my problem. Thanks for all your help and please forgive me my poor knowledge, programming is my free time pleassure.

                main.py (gui_91.py is imported here)

                import RPi.GPIO as GPIO
                from subprocess import call
                import gui_91
                import sys
                import os
                from datetime import datetime
                from slaves import *
                from Buffer_script_02 import *
                from graph_08c import *  
                from kalkulacije import *
                from xls_store_8 import*
                
                from PyQt5 import QtCore, QtGui, QtWidgets
                from PyQt5.QtWidgets import QMainWindow, QApplication
                from PyQt5.QtCore import QTimer
                import time
                
                ...
                

                gui_91.py (login_window.py is imported here)

                from PyQt5 import QtCore, QtGui, QtWidgets
                
                from login_window import Ui_Dialog
                
                try:
                    _fromUtf8 = QtCore.QString.fromUtf8
                except AttributeError:
                    def _fromUtf8(s):
                        return s
                
                try:
                    _encoding = QtGui.QApplication.UnicodeUTF8
                    def _translate(context, text, disambig):
                        return QtGui.QApplication.translate(context, text, disambig, _encoding)
                except AttributeError:
                    def _translate(context, text, disambig):
                        return QtGui.QApplication.translate(context, text, disambig)
                
                class Ui_SCADA(object):
                    
                    #-----------------------------------------------------------------------------------------------
                    def open_Login_Window(self):    
                        self.window = QtWidgets.QDialog()
                        self.ui = Ui_Dialog()
                        self.ui.setupUi(self.window)        
                        self.window.show()  
                    #-----------------------------------------------------------------------------------------------
                        
                    def setupUi(self, SCADA):
                        SCADA.setObjectName("SCADA")
                        SCADA.resize(888, 665)
                
                ...
                

                login_window.py (I want to use methods "user_Name" and "pass_Word" in main.py or in gui_91.py)

                # -*- coding: utf-8 -*-
                
                # Form implementation generated from reading ui file 'login.ui'
                #
                # Created by: PyQt5 UI code generator 5.15.2
                #
                # WARNING: Any manual changes made to this file will be lost when pyuic5 is
                # run again.  Do not edit this file unless you know what you are doing.
                
                
                from PyQt5 import QtCore, QtGui, QtWidgets
                
                try:
                    _fromUtf8 = QtCore.QString.fromUtf8
                except AttributeError:
                    def _fromUtf8(s):
                        return s
                
                try:
                    _encoding = QtGui.QApplication.UnicodeUTF8
                    def _translate(context, text, disambig):
                        return QtGui.QApplication.translate(context, text, disambig, _encoding)
                except AttributeError:
                    def _translate(context, text, disambig):
                        return QtGui.QApplication.translate(context, text, disambig)
                
                class Ui_Dialog(object):
                    def user_Name(self):
                        un = self.lineEdit_user_name.text()
                        print(un)
                        return un
                
                    def pass_Word(self):
                        pw = self.lineEdit_password.text()
                        print(pw)
                        return pw
                    
                    def log_IN(self):
                        print("Log In")
                        self.user_Name()
                        self.pass_Word()
                        
                    def setupUi(self, Dialog):
                        Dialog.setObjectName("Dialog")
                        Dialog.resize(400, 300)
                        self.bgwidget = QtWidgets.QWidget(Dialog)
                        self.bgwidget.setGeometry(QtCore.QRect(-1, -1, 401, 301))
                        self.bgwidget.setStyleSheet("QWidget#bgwidget{\n"
                "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));}")
                        self.bgwidget.setObjectName("bgwidget")
                        self.label = QtWidgets.QLabel(self.bgwidget)
                        self.label.setGeometry(QtCore.QRect(160, 30, 91, 31))
                        font = QtGui.QFont()
                        font.setPointSize(20)
                        self.label.setFont(font)
                        self.label.setStyleSheet("color: rgb(255, 255, 127);")
                        self.label.setObjectName("label")
                        #self.pushButton_Log_in = QtWidgets.QPushButton(self.bgwidget)
                        self.pushButton_Log_in = QtWidgets.QPushButton(self.bgwidget, clicked = lambda: log_IN())
                        self.pushButton_Log_in.setGeometry(QtCore.QRect(140, 230, 121, 30))
                        self.pushButton_Log_in.setStyleSheet("color: rgb(255, 255, 127);\n"
                "background-color: rgb(99, 99, 99);")
                        self.pushButton_Log_in.setObjectName("pushButton_Log_in")
                        self.lineEdit_user_name = QtWidgets.QLineEdit(self.bgwidget)
                        self.lineEdit_user_name.setGeometry(QtCore.QRect(140, 110, 121, 30))
                        self.lineEdit_user_name.setObjectName("lineEdit_user_name")
                        self.lineEdit_password = QtWidgets.QLineEdit(self.bgwidget)
                        self.lineEdit_password.setGeometry(QtCore.QRect(140, 170, 121, 30))
                        self.lineEdit_password.setObjectName("lineEdit_password")
                        self.label_2 = QtWidgets.QLabel(self.bgwidget)
                        self.label_2.setGeometry(QtCore.QRect(60, 120, 68, 22))
                        self.label_2.setStyleSheet("color: rgb(255, 255, 127);")
                        self.label_2.setObjectName("label_2")
                        self.label_3 = QtWidgets.QLabel(self.bgwidget)
                        self.label_3.setGeometry(QtCore.QRect(60, 180, 68, 22))
                        self.label_3.setStyleSheet("color: rgb(255, 255, 127);")
                        self.label_3.setObjectName("label_3")
                
                        self.retranslateUi(Dialog)
                        QtCore.QMetaObject.connectSlotsByName(Dialog)
                
                    def retranslateUi(self, Dialog):
                        _translate = QtCore.QCoreApplication.translate
                        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
                        self.label.setText(_translate("Dialog", "Prijava"))
                        self.pushButton_Log_in.setText(_translate("Dialog", "Prijava"))
                        self.label_2.setText(_translate("Dialog", "Up. ime"))
                        self.label_3.setText(_translate("Dialog", "Geslo"))
                
                
                if __name__ == "__main__":
                    import sys
                    app = QtWidgets.QApplication(sys.argv)
                    Dialog = QtWidgets.QDialog()
                    ui = Ui_Dialog()
                    ui.setupUi(Dialog)
                    Dialog.show()
                    sys.exit(app.exec_())
                
                
                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #11

                @California You simply call these methods as you would do with any other method (also @SGaist already shown how):

                def open_Login_Window(self):    
                        self.window = QtWidgets.QDialog()
                        self.ui = Ui_Dialog()
                        self.ui.setupUi(self.window)        
                        self.window.show()  
                        ...
                        name = self.ui.user_Name()
                        password = self.ui.pass_Word()
                

                You also should use exec() instead of show() I think.

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                0
                • C Offline
                  C Offline
                  California
                  wrote on last edited by
                  #12

                  First of all, thanks to all for helping ...
                  Ok, I got one step closer...it works, but only at start up application. To represent the situation, I put together small example, which you can run...so, what to do in existing example to print both line edits content whenever is login window opened. Thanks in advance, Vlado
                  main.py

                  import gui
                  import logwindow
                  import sys
                  import os
                  
                  from PyQt5 import QtCore, QtGui, QtWidgets
                  from PyQt5.QtWidgets import QMainWindow, QApplication
                  from PyQt5.QtCore import QTimer
                  import time
                  
                  #------------------------------------------------------------------------------
                  def userName():
                      un = login.lineEdit_user_name.text()
                      print(un)
                      return un
                  
                  def passWord():
                      pw = login.lineEdit_password.text()
                      print(pw)
                      return pw
                  
                  def log_IN():
                      userName()
                      passWord()
                  
                  def show_login_window():  
                      log_IN()
                      print("-------")
                  #-----------------------------------------------------------------------------
                  def push_buttons():
                      master.pushButton_call_window.clicked.connect(master.open_Login_Window)
                      login.pushButton_Login.clicked.connect(show_login_window)
                  #---------------------------------------------------------------------------------
                  def triger():
                      push_buttons()  
                  
                  
                  if __name__ == "__main__":
                      app = QtWidgets.QApplication(sys.argv)
                      gui_master = gui.QtWidgets.QWidget()
                      master = gui.Ui_Form()
                      master.setupUi(gui_master)
                  
                      gui_login = logwindow.QtWidgets.QDialog()
                      login = logwindow.Ui_Dialog()
                      login.setupUi(gui_login)
                      
                      timer = QTimer()
                      timer.timeout.connect(triger)  
                      timer.start(1000)
                  
                      gui_master.show()
                      gui_login.show()
                      sys.exit(app.exec_())
                  

                  gui.py

                  from PyQt5 import QtCore, QtGui, QtWidgets
                  
                  from logwindow import Ui_Dialog
                  
                  class Ui_Form(object):
                      def open_Login_Window(self):    
                          self.window = QtWidgets.QDialog()
                          self.ui = Ui_Dialog()
                          self.ui.setupUi(self.window)        
                          self.window.show()
                          
                      def setupUi(self, Form):
                          Form.setObjectName("Form")
                          Form.resize(400, 300)
                          self.pushButton_call_window = QtWidgets.QPushButton(Form)
                          self.pushButton_call_window.setGeometry(QtCore.QRect(130, 130, 141, 30))
                          self.pushButton_call_window.setObjectName("pushButton_call_window")
                  
                          self.retranslateUi(Form)
                          QtCore.QMetaObject.connectSlotsByName(Form)
                  
                      def retranslateUi(self, Form):
                          _translate = QtCore.QCoreApplication.translate
                          Form.setWindowTitle(_translate("Form", "Form"))
                          self.pushButton_call_window.setText(_translate("Form", "Call Login Window"))
                  
                  
                  if __name__ == "__main__":
                      import sys
                      app = QtWidgets.QApplication(sys.argv)
                      Form = QtWidgets.QWidget()
                      ui = Ui_Form()
                      ui.setupUi(Form)
                      Form.show()
                      sys.exit(app.exec_())
                  

                  logwindow.py

                  # -*- coding: utf-8 -*-
                  
                  # Form implementation generated from reading ui file 'logwindow.ui'
                  #
                  # Created by: PyQt5 UI code generator 5.15.2
                  #
                  # WARNING: Any manual changes made to this file will be lost when pyuic5 is
                  # run again.  Do not edit this file unless you know what you are doing.
                  
                  
                  from PyQt5 import QtCore, QtGui, QtWidgets
                  
                  
                  class Ui_Dialog(object):
                      def setupUi(self, Dialog):
                          Dialog.setObjectName("Dialog")
                          Dialog.resize(400, 300)
                          self.pushButton_Login = QtWidgets.QPushButton(Dialog)
                          self.pushButton_Login.setGeometry(QtCore.QRect(140, 200, 91, 30))
                          self.pushButton_Login.setObjectName("pushButton_Login")
                          self.lineEdit_user_name = QtWidgets.QLineEdit(Dialog)
                          self.lineEdit_user_name.setGeometry(QtCore.QRect(130, 70, 113, 30))
                          self.lineEdit_user_name.setObjectName("lineEdit_user_name")
                          self.lineEdit_user_name.setText("user name")
                          self.lineEdit_password = QtWidgets.QLineEdit(Dialog)
                          self.lineEdit_password.setGeometry(QtCore.QRect(130, 120, 113, 30))
                          self.lineEdit_password.setObjectName("lineEdit_password")
                          self.lineEdit_password.setText("password")
                  
                          self.retranslateUi(Dialog)
                          QtCore.QMetaObject.connectSlotsByName(Dialog)
                  
                      def retranslateUi(self, Dialog):
                          _translate = QtCore.QCoreApplication.translate
                          Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
                          self.pushButton_Login.setText(_translate("Dialog", "Login"))
                  
                  
                  if __name__ == "__main__":
                      import sys
                      app = QtWidgets.QApplication(sys.argv)
                      Dialog = QtWidgets.QDialog()
                      ui = Ui_Dialog()
                      ui.setupUi(Dialog)
                      Dialog.show()
                      sys.exit(app.exec_())
                  
                  
                  1 Reply Last reply
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #13

                    Make a proper widget of your login dialog and use it at the right place in your main window.

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    1 Reply Last reply
                    0
                    • C Offline
                      C Offline
                      California
                      wrote on last edited by
                      #14

                      Thanks man for showing me the way, it works now. All "Log IN" actions were put into logwindow.py and called from there.
                      How can I mark this post as solved?

                      Regards, Vlado

                      1 Reply Last reply
                      0
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by
                        #15

                        You can either use the "Topic Tools" button or the three dotted menu beside the answer you deem correct.

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved