How to get text in QlineEdit when QpushButton is pressed in a string? How to get text in QlineEdit when QpushButton is pressed in a string? python python

How to get text in QlineEdit when QpushButton is pressed in a string?


My first suggestion is to use Qt Designer to create your GUIs. Typing them out yourself sucks, takes more time, and you will definitely make more mistakes than Qt Designer.

Here are some PyQt tutorials to help get you on the right track. The first one in the list is where you should start.

A good guide for figuring out what methods are available for specific classes is the PyQt4 Class Reference. In this case, you would look up QLineEdit and see the there is a text method.

To answer your specific question:

To make your GUI elements available to the rest of the object, preface them with self.

import sysfrom PyQt4.QtCore import SIGNALfrom PyQt4.QtGui import QDialog, QApplication, QPushButton, QLineEdit, QFormLayoutclass Form(QDialog):    def __init__(self, parent=None):        super(Form, self).__init__(parent)        self.le = QLineEdit()        self.le.setObjectName("host")        self.le.setText("Host")                self.pb = QPushButton()        self.pb.setObjectName("connect")        self.pb.setText("Connect")                 layout = QFormLayout()        layout.addWidget(self.le)        layout.addWidget(self.pb)        self.setLayout(layout)        self.connect(self.pb, SIGNAL("clicked()"),self.button_click)        self.setWindowTitle("Learning")    def button_click(self):        # shost is a QString object        shost = self.le.text()        print shost        app = QApplication(sys.argv)form = Form()form.show()app.exec_()


The object name is not very important.what you should be focusing at is the variable that stores the lineedit object (le) and your pushbutton object(pb)

QObject(self.pb, SIGNAL("clicked()"), self.button_clicked)def button_clicked(self):  self.le.setText("shost")

I think this is what you want.I hope i got your question correctly :)


Acepted solution implemented in PyQt5

import sysfrom PyQt5.QtWidgets import QApplication, QDialog, QFormLayoutfrom PyQt5.QtWidgets import (QPushButton, QLineEdit)class Form(QDialog):    def __init__(self, parent=None):        super(Form, self).__init__(parent)        self.le = QLineEdit()        self.le.setObjectName("host")        self.le.setText("Host")        self.pb = QPushButton()        self.pb.setObjectName("connect")        self.pb.setText("Connect")        self.pb.clicked.connect(self.button_click)        layout = QFormLayout()        layout.addWidget(self.le)        layout.addWidget(self.pb)        self.setLayout(layout)        self.setWindowTitle("Learning")    def button_click(self):        # shost is a QString object        shost = self.le.text()        print (shost)app = QApplication(sys.argv)form = Form()form.show()app.exec_()