How do you get the text from QLineEdit and tie it to the button?



  • How do I get the text? QLineEdit And tie action to the buttons?

    main.py:

    
    from PyQt5 import QtCore, QtGui, QtWidgets
    import os
    import sys
    

    class Ui_MainWidget(object):
    def setupUi(self, MainWidget):
    MainWidget.setObjectName("MainWidget")
    MainWidget.setEnabled(True)
    MainWidget.resize(391, 500)
    MainWidget.setMinimumSize(QtCore.QSize(0, 0))
    MainWidget.setMaximumSize(QtCore.QSize(10000000, 10000000))
    MainWidget.setAutoFillBackground(False)
    self.label = QtWidgets.QLabel(MainWidget)
    self.label.setGeometry(QtCore.QRect(80, 0, 241, 51))
    font = QtGui.QFont()
    font.setFamily("Times New Roman")
    font.setPointSize(36)
    font.setBold(False)
    font.setWeight(50)
    font.setStyleStrategy(QtGui.QFont.PreferDefault)
    self.label.setFont(font)
    self.label.setTextFormat(QtCore.Qt.AutoText)
    self.label.setObjectName("label")
    self.Program1 = QtWidgets.QLineEdit(MainWidget)
    self.Program1.setGeometry(QtCore.QRect(10, 100, 371, 31))
    self.Program1.setText("")
    self.Program1.setObjectName("Program1")
    self.Program1_2 = QtWidgets.QLineEdit(MainWidget)
    self.Program1_2.setGeometry(QtCore.QRect(10, 180, 371, 31))
    self.Program1_2.setText("")
    self.Program1_2.setObjectName("Program1_2")
    self.ProgramN1 = QtWidgets.QLabel(MainWidget)
    self.ProgramN1.setGeometry(QtCore.QRect(110, 60, 171, 41))
    font = QtGui.QFont()
    font.setFamily("Times New Roman")
    font.setPointSize(19)
    font.setBold(False)
    font.setWeight(50)
    font.setStyleStrategy(QtGui.QFont.PreferDefault)
    self.ProgramN1.setFont(font)
    self.ProgramN1.setTextFormat(QtCore.Qt.AutoText)
    self.ProgramN1.setObjectName("ProgramN1")
    self.ProgramN2 = QtWidgets.QLabel(MainWidget)
    self.ProgramN2.setGeometry(QtCore.QRect(110, 140, 171, 41))
    font = QtGui.QFont()
    font.setFamily("Times New Roman")
    font.setPointSize(19)
    font.setBold(False)
    font.setWeight(50)
    font.setStyleStrategy(QtGui.QFont.PreferDefault)
    self.ProgramN2.setFont(font)
    self.ProgramN2.setTextFormat(QtCore.Qt.AutoText)
    self.ProgramN2.setObjectName("ProgramN2")
    self.pushButton = QtWidgets.QPushButton(MainWidget)
    self.pushButton.setGeometry(QtCore.QRect(20, 390, 351, 41))
    font = QtGui.QFont()
    font.setFamily("Times New Roman")
    font.setPointSize(20)
    self.pushButton.setFont(font)
    self.pushButton.setObjectName("pushButton")
    self.pushButton_2 = QtWidgets.QPushButton(MainWidget)
    self.pushButton_2.setGeometry(QtCore.QRect(20, 440, 351, 41))
    font = QtGui.QFont()
    font.setFamily("Times New Roman")
    font.setPointSize(20)
    self.pushButton_2.setFont(font)
    self.pushButton_2.setObjectName("pushButton_2")

        self.retranslateUi(MainWidget)
        QtCore.QMetaObject.connectSlotsByName(MainWidget)
    
    def retranslateUi(self, MainWidget):
        _translate = QtCore.QCoreApplication.translate
        MainWidget.setWindowTitle(_translate("MainWidget", "Юлька"))
        self.label.setText(_translate("MainWidget", "Юлия 0.2.0"))
        self.ProgramN1.setText(_translate("MainWidget", "Программа №1"))
        self.ProgramN2.setText(_translate("MainWidget", "Программа №2"))
        self.pushButton.setText(_translate("MainWidget", "Запустить программу №1"))
        self.pushButton_2.setText(_translate("MainWidget", "Запустить программу №2"))
    
    def copy_text(self, number):
        if  number == 1:
            text1 = self.Program1.toPlainText()         # <---   - text()   +++ toPlainText
            print(text + "Всё  ок, нумбер1")
    
        elif number == 2:
            text1 = self.Program1_2.toPlainText()         # <---   - text()   +++ toPlainText
            print(text + "Всё  ок, нумбер2")
    
    #pushButton.clicked.connect(copy_text(1))
    #pushButton_2.clicked.connect(copy_text(2))
    self.pushButton.clicked.connect(copy_text(1))
    self.pushButton_2.clicked.connect(copy_text(2))
    

    class Window(QtWidgets.QMainWindow):
    def init(self):
    super(Window, self).init()
    self.ui = Ui_MainWidget()
    self.ui.setupUi(self)

    if name == 'main':
    app = QtWidgets.QApplication([])
    application = Window()
    application.show()
    sys.exit(app.exec_())



  • Не изменяйте код, сгенерированный Qt Designer♪ Create another class, which is inherited from the view and use the class created to fill it.

    #import os
    import sys
    from PyQt5 import QtCore, QtGui, QtWidgets
    

    class Ui_MainWidget(object):
    def setupUi(self, MainWidget):
    MainWidget.setObjectName("MainWidget")
    MainWidget.setEnabled(True)
    MainWidget.resize(391, 500)
    MainWidget.setMinimumSize(QtCore.QSize(0, 0))
    MainWidget.setMaximumSize(QtCore.QSize(10000000, 10000000))
    MainWidget.setAutoFillBackground(False)
    self.label = QtWidgets.QLabel(MainWidget)
    self.label.setGeometry(QtCore.QRect(80, 0, 241, 51))
    font = QtGui.QFont()
    font.setFamily("Times New Roman")
    font.setPointSize(36)
    font.setBold(False)
    font.setWeight(50)
    font.setStyleStrategy(QtGui.QFont.PreferDefault)
    self.label.setFont(font)
    self.label.setTextFormat(QtCore.Qt.AutoText)
    self.label.setObjectName("label")
    self.Program1 = QtWidgets.QLineEdit(MainWidget)
    self.Program1.setGeometry(QtCore.QRect(10, 100, 371, 31))
    self.Program1.setText("")
    self.Program1.setObjectName("Program1")
    self.Program1_2 = QtWidgets.QLineEdit(MainWidget)
    self.Program1_2.setGeometry(QtCore.QRect(10, 180, 371, 31))
    self.Program1_2.setText("")
    self.Program1_2.setObjectName("Program1_2")
    self.ProgramN1 = QtWidgets.QLabel(MainWidget)
    self.ProgramN1.setGeometry(QtCore.QRect(110, 60, 171, 41))
    font = QtGui.QFont()
    font.setFamily("Times New Roman")
    font.setPointSize(19)
    font.setBold(False)
    font.setWeight(50)
    font.setStyleStrategy(QtGui.QFont.PreferDefault)
    self.ProgramN1.setFont(font)
    self.ProgramN1.setTextFormat(QtCore.Qt.AutoText)
    self.ProgramN1.setObjectName("ProgramN1")
    self.ProgramN2 = QtWidgets.QLabel(MainWidget)
    self.ProgramN2.setGeometry(QtCore.QRect(110, 140, 171, 41))
    font = QtGui.QFont()
    font.setFamily("Times New Roman")
    font.setPointSize(19)
    font.setBold(False)
    font.setWeight(50)
    font.setStyleStrategy(QtGui.QFont.PreferDefault)
    self.ProgramN2.setFont(font)
    self.ProgramN2.setTextFormat(QtCore.Qt.AutoText)
    self.ProgramN2.setObjectName("ProgramN2")
    self.pushButton = QtWidgets.QPushButton(MainWidget)
    self.pushButton.setGeometry(QtCore.QRect(20, 390, 351, 41))
    font = QtGui.QFont()
    font.setFamily("Times New Roman")
    font.setPointSize(20)
    self.pushButton.setFont(font)
    self.pushButton.setObjectName("pushButton")
    self.pushButton_2 = QtWidgets.QPushButton(MainWidget)
    self.pushButton_2.setGeometry(QtCore.QRect(20, 440, 351, 41))
    font = QtGui.QFont()
    font.setFamily("Times New Roman")
    font.setPointSize(20)
    self.pushButton_2.setFont(font)
    self.pushButton_2.setObjectName("pushButton_2")

        self.retranslateUi(MainWidget)
        QtCore.QMetaObject.connectSlotsByName(MainWidget)
    
    def retranslateUi(self, MainWidget):
        _translate = QtCore.QCoreApplication.translate
        MainWidget.setWindowTitle(_translate("MainWidget", "Юлька"))
        self.label.setText(_translate("MainWidget", "Юлия 0.2.0"))
        self.ProgramN1.setText(_translate("MainWidget", "Программа №1"))
        self.ProgramN2.setText(_translate("MainWidget", "Программа №2"))
        self.pushButton.setText(_translate("MainWidget", "Запустить программу №1"))
        self.pushButton_2.setText(_translate("MainWidget", "Запустить программу №2"))
    

    class Window(QtWidgets.QMainWindow, Ui_MainWidget):
    def init(self):
    super(Window, self).init()

    self.ui = Ui_MainWidget()

    self.ui.setupUi(self)

        self.setupUi(self)
    
        self.pushButton.clicked.connect(lambda: self.copy_text(1))     # +++ lambda
        self.pushButton_2.clicked.connect(lambda: self.copy_text(2))   # +++ lambda    
    
    def copy_text(self, number):
        if  number == 1:
    

    text1 = self.Program1.toPlainText() # ---

            text1 = self.Program1.text()                               # +++
            print(f"{text1} Всё  ок, нумбер 1")
    
        elif number == 2:
    

    text1 = self.Program1_2.toPlainText() # ---

            text1 = self.Program1_2.text()                             # +++
            print(f"{text1} Всё  ок, нумбер 2")
    

    if name == 'main':
    app = QtWidgets.QApplication([])
    application = Window()
    application.show()
    sys.exit(app.exec_())

    введите сюда описание изображения



Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2