elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 05:23  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  [Tutorial]Aprendiendo PyQT4 [Parte4]- JaAViEr (0x5d)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Tutorial]Aprendiendo PyQT4 [Parte4]- JaAViEr (0x5d)  (Leído 178 veces)
0x5d

Desconectado Desconectado

Mensajes: 137

¡ Programming the World !


Ver Perfil WWW
[Tutorial]Aprendiendo PyQT4 [Parte4]- JaAViEr (0x5d)
« en: 13 Febrero 2012, 02:27 »

Hola nuevamente !

 En la [Parte3] dejé pendiente hablar sobre como obtener los datos de un QLineEdit(), voy a ir directo al grano :P.

 Pondré un ejemplo sencillo, tenemos el QLineEdit():
Código
self.input_datos = QtGui.QLineEdit(self)
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:
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
def funcion(self):
 recibo_datos = str(self.input_datos.text())
 
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.

 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 :D, de todas formas dejaré el código con comentarios :
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(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_()
 
Explico un poco:
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 :P, 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
self.texto_plano = QtGui.QPlainTextEdit("", self)
Como ya sabemos, usamos la propiedad setGeometry() para dar posición, ancho y altura.
 
  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.


En línea

¡ Te espero en el foro de RootCodes -> http://rootcodes.com/foro/index.php !
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Código-PyQT4]Calculadora por secuencias - JaAViEr(0x5d)
Scripting
0x5d 2 482 Último mensaje 27 Diciembre 2011, 02:19
por 0x5d
[Código-PyQT4]All in one - JaAViEr(0x5d)
Scripting
0x5d 0 151 Último mensaje 11 Febrero 2012, 05:11
por 0x5d
[Tutorial]Aprendiendo PyQT4 [Parte1]- JaAViEr (0x5d)
Scripting
0x5d 0 249 Último mensaje 11 Febrero 2012, 20:00
por 0x5d
[Tutorial]Aprendiendo PyQT4 [Parte2]- JaAViEr (0x5d)
Scripting
0x5d 0 147 Último mensaje 11 Febrero 2012, 20:13
por 0x5d
[Tutorial]Aprendiendo PyQT4 [Parte3]- JaAViEr (0x5d)
Scripting
0x5d 0 127 Último mensaje 11 Febrero 2012, 20:21
por 0x5d
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines