Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
qtws26_logo

The Qt Event of the Year: Qt World Summit 2026

Save Your Spot >
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. How to call QPushButton and QLineEdit from window 2
Qt 6.12 LTS 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.9k 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
    #3

    Thanks for your respond. Can you be more specific, couse Iam not an expert with python. Some example would be very appreciatted.

    Regards

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

      There are lots of examples in the Qt for Python documentation like this one.

      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
        #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
                            • Unsolved