Saltar al contenido

Cómo obtener texto en QlineEdit cuando se presiona QpushButton en un string?

Después de tanto batallar ya hallamos el resultado de esta dificultad que ciertos lectores de este espacio han presentado. Si tienes alguna información que compartir no dejes de dejar tu información.

Solución:

Mi primera sugerencia es usar Designer para crear sus GUI. Escribirlos usted mismo apesta, toma más tiempo y definitivamente cometerá más errores que Designer.

Aquí hay algunos tutoriales de PyQt para ayudarlo a tomar el camino correcto. El primero en la lista es donde debe comenzar.

Una buena guía para descubrir qué métodos están disponibles para clases específicas es la referencia de clase de PyQt4. En este caso buscarías QLineEdit y ver que hay un text método.

Para responder a su pregunta específica:

Para que los elementos de la GUI estén disponibles para el resto del objeto, prepárelos con self.

import sys
from PyQt4.QtCore import SIGNAL
from PyQt4.QtGui import QDialog, QApplication, QPushButton, QLineEdit, QFormLayout

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") 

        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_()

El nombre del objeto no es muy importante. en lo que debería centrarse es en la variable que almacena el objeto lineedit (le) y su objeto pushbutton (pb)

QObject(self.pb, SIGNAL("clicked()"), self.button_clicked)

def button_clicked(self):
  self.le.setText("shost")

Creo que esto es lo que quieres. Espero haber respondido correctamente a tu pregunta 🙂

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *