En la [Parte3] dejé pendiente hablar sobre como obtener los datos de un QLineEdit(), voy a ir directo al grano .
Pondré un ejemplo sencillo, tenemos el QLineEdit():
Código
Entonces para obtener lo que ingresamos, usamos la propiedad .text() acompañada de un str() para que no devuelva el objeto y si el valor:
self.input_datos = QtGui.QLineEdit(self)
Código
variable = str(self.input_datos.text())
Entonces solo bastaría poner dicha línea en la función del botón(self.connect):
Código
Y con ello ya tendremos en nuestras manos el valor del QLineEdit() en la variable. Ahora con ella podemos hacer lo mismo que hacemos en nuestros códigos Python normales, a nuestro antojo.
def funcion(self): recibo_datos = str(self.input_datos.text())
Pero como quedó pendiente en la pasada parte sobre utilizar el valor del QLineEdit() en el QLabel(), con lo que hemos visto ya deberíamos saber hacerlo , de todas formas dejaré el código con comentarios :
Código
Explico un poco:
# -*- coding: utf-8 -*- from PyQt4 import QtCore, QtGui import sys class Mi_Programa(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.resize(200,134) #Creamos los Labels,label_mensaje "Mensaje:", label_resultado el mensaje de "Resultado:" #Y el tercero mostrará el texto ingresado. self.label_mensaje = QtGui.QLabel("Mensaje:", self) self.label_mensaje.setGeometry(3,14,59,17) self.label_resultado = QtGui.QLabel("Resultado:", self) self.label_resultado.setGeometry(5,80,71,17) self.label_show = QtGui.QLabel("",self) self.label_show.setGeometry(80,80,111,17) #Creamos el QLineEdit para pedir datos self.input_datos = QtGui.QLineEdit(self) self.input_datos.setGeometry(60,10,113,27) #Creamos el Boton self.mi_boton = QtGui.QPushButton("Dame Clic", self) self.mi_boton.setGeometry(60,40,92,27) #Le damos función al botón self.connect(self.mi_boton, QtCore.SIGNAL('clicked()'), self.show_message) def show_message(self): mensaje = str(self.input_datos.text()) self.label_show.setText(mensaje) aplicacion = QtGui.QApplication(sys.argv) formulario = Mi_Programa() formulario.show() aplicacion.exec_()
Al dar clic en el botón, llamamos a la función show_message() en la cual obtendremos el dato de self.input_datos, posteriormente guardamos el valor en la variable mensaje y como ya vimos, usamos setText(mensaje) para darle el nuevo valor al QLabel().
Supongo que ya no hay temas pendientes con QLineEdit, QLabel, QPushButton , veamos el uso de otros Widgets, el siguiente es QPlainTextEdit().
Como dice su nombre, es para insertar un texto plano, a diferencia del QLineEdit, este es multilíneas.
La manera de utilización es la siguiente :
Código
Como ya sabemos, usamos la propiedad setGeometry() para dar posición, ancho y altura.
self.texto_plano = QtGui.QPlainTextEdit("", self)
Para obtener los datos que se insertan en dicho widget, usaremos la propiedad toPlainText(), que es el equivalente al .text() del QLineEdit.
Para insertar datos en un QPlainTextEdit(), debemos usar setPlainText('Msj').
Un pequeño ejemplo de lo que he escrito en código :
Código
# -*- coding: utf-8 -*- from PyQt4 import QtCore, QtGui import sys class Mi_Programa(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.resize(400,319) # Tamaño #Creamos el primer PlainTextEdit que luego envía los datos al segundo self.texto_plano = QtGui.QPlainTextEdit("", self) self.texto_plano.setGeometry(10,10,191,271) #Creamos el botón self.transcribir = QtGui.QPushButton("Transcribir", self) self.transcribir.setGeometry(10,285,95,27) #Creamos el segundo PlainTextEdit que recibirá el primer contenido self.nuevo_txt = QtGui.QPlainTextEdit("", self) self.nuevo_txt.setGeometry(206,10,191,271) #Le damos la función al botón y llamamos al def transcribe self.connect(self.transcribir, QtCore.SIGNAL('clicked()'), self.transcribe) def transcribe(self): #Obtenemos el contenido del primer QPlainTextEdit contenido = self.texto_plano.toPlainText() #Escribimos el contenido del primer QPlainTextEdit en el segundo #Usando setPlainText self.nuevo_txt.setPlainText(contenido) aplicacion = QtGui.QApplication(sys.argv) formulario = Mi_Programa() formulario.show() aplicacion.exec_()
Luego seguiré con el QTextBrowser(), que nos permite ingresar código HTML en el campo de escritura...
Fuente : http://rootcodes.com/tutorialaprendiendo-pyqt4-con-rootcodes-parte4/
Saludos, Javier.