elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Tutorial]Aprendiendo PyQT4 [Parte3]- JaAViEr (0x5d)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Tutorial]Aprendiendo PyQT4 [Parte3]- JaAViEr (0x5d)  (Leído 1,735 veces)
0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
[Tutorial]Aprendiendo PyQT4 [Parte3]- JaAViEr (0x5d)
« en: 11 Febrero 2012, 20:21 pm »

Hola ! , en la pasa ocasión quedaron pendientes un par de puntos :
  • Dar función a un botón
  • Crear un QLabel()
  • Nuestro primer Hola mundo en PyQT4

 Bien, manos a la obra, para quienes no sepan que es un Label, dejaré un Screenshot , es algo bien sencillo:


 Sencillo no ? , nos servirá para imprimir resultados por pantalla, como dije en la primera parte, como un reemplazo al print de la versión Python en Consola.

 Bueno... ¿ Y cómo uso el QLabel ?

 Nada más que esto:
Código
  1. self.mi_label = QtGui.QLabel("Mi texto", self)
  2.  
Luego pueden cambiar las coordenadas con el ya mencionado self.objeto.setGeometry() (donde objeto puede ser un QLabel, QLineEdit, etc)

  Siguiendo con algo más "útil", pasaré a explicar como dar vida a los famosos Botones.

  Para poder crear acciones al dar clic en un botón, usaremos self.connect(), pero antes de ello, debemos tener una función creada para que al dar clic, esta se ejecute...

  La sintaxis del self.connect será esta:
Código
  1. self.connect(self.mi_boton, QtCore.SIGNAL("clicked()"), self.respuesta)
Paso a explicar:
  • self.connect(self.mi_boton = Eso indica que la función self.respuesta solo será ejecutada al dar clic en el botón "self.mi_boton"
  • QtCore.SIGNAL('clicked()'), quiere decir que será ejecutado al ser clickeado
  • self.respuesta) es la función que se ejecuta al ser clickeado el botón
Osea, en nuestros programas, la única parte que debería cambiar serían self.mi_boton y self.respuesta, veamos como queda el código:
Código
  1. # -*- coding: utf-8 -*-
  2. from PyQt4 import QtCore, QtGui
  3. import sys
  4.  
  5. class Mi_Programa(QtGui.QWidget):
  6.  
  7.  def __init__(self, parent=None):
  8.  
  9.    QtGui.QWidget.__init__(self, parent)
  10.    self.resize(200,200) #Dimensiones del formulario
  11.    self.mi_boton = QtGui.QPushButton("Boton", self) # Creo el QPushButton()
  12.    self.mi_boton.setGeometry(10,10,92,27) #X = 10 ; Y = 15 ; Width = 92 ; Height = 27
  13.    self.connect(self.mi_boton, QtCore.SIGNAL('clicked()'), self.respuesta)
  14.    self.mi_label = QtGui.QLabel('', self)#Lo definimos sin texto, luego le damos un valor
  15.    self.mi_label.setGeometry(10,40,92,27)
  16.  
  17. aplicacion = QtGui.QApplication(sys.argv)
  18. formulario = Mi_Programa() # Instanciamos la clase de nuestro programa
  19. formulario.show() # Mostramos el Formulario
  20. aplicacion.exec_() # Ejecutamos
  21.  
  Bien hasta ahí... Pero algo falta... La función respuesta !
Haremos algo sencillo, que al dar clic en el botón, nos cree un QLabel con una respuesta:
Código
  1.  def respuesta(self):
  2.    self.mi_label.setText('Gracias !')
  3.  
Pero que es eso ! ? , setText() ?
Sí, es la propiedad que usaremos para definir un texto en el QLabel(), siempre y cuando el QLabel() ya haya sido creado.

Entonces nuestro código será el siguiente, ya terminado:
Código
  1. # -*- coding: utf-8 -*-
  2. from PyQt4 import QtCore, QtGui
  3. import sys
  4.  
  5. class Mi_Programa(QtGui.QWidget):
  6.  
  7.  def __init__(self, parent=None):
  8.  
  9.    QtGui.QWidget.__init__(self, parent)
  10.    self.resize(200,200) #Dimensiones del formulario
  11.    self.mi_boton = QtGui.QPushButton("Boton", self) # Creo el QPushButton()
  12.    self.mi_boton.setGeometry(10,10,92,27) #X = 10 ; Y = 15 ; Width = 92 ; Height = 27
  13.    self.connect(self.mi_boton, QtCore.SIGNAL('clicked()'), self.respuesta)
  14.    self.mi_label = QtGui.QLabel('', self)
  15.    self.mi_label.setGeometry(10,40,92,27)
  16.  
  17.  def respuesta(self):
  18.    self.mi_label.setText('Gracias !') #Defino un texto al dar clic en self.mi_boton
  19.  
  20. aplicacion = QtGui.QApplication(sys.argv)
  21. formulario = Mi_Programa() # Instanciamos la clase de nuestro programa
  22. formulario.show() # Mostramos el Formulario
  23. aplicacion.exec_() # Ejecutamos
  24.  
Genial ! , ya tenemos nuestro primer programa en PyQT4. Nos aparecerá el formulario con el botón y al dar clic aparecerá el mensaje: "Gracias !"


Los puntos :
  • Dar función a un botón
  • Crear un QLabel()
  • Nuestro primer Hola mundo en PyQT4
Ya fueron tratados en esta 3era parte... En la siguiente parte explicaré como obtener los datos ingresados en un QLineEdit(), mostrarlos en un QLabel() al dar clic en un QPushButton(). Ya con eso podrán empezar a crear vuestras aplicaciones !

Fuente : http://rootcodes.com/tutorialaprende-pyqt4-con-rootcodes-parte3

Saludos , Javier !


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Código-PyQT4]All in one - JaAViEr(0x5d)
Scripting
0x5d 0 2,159 Último mensaje 11 Febrero 2012, 05:11 am
por 0x5d
[Tutorial]Aprendiendo PyQT4 [Parte1]- JaAViEr (0x5d)
Scripting
0x5d 0 2,315 Último mensaje 11 Febrero 2012, 20:00 pm
por 0x5d
[Tutorial]Aprendiendo PyQT4 [Parte2]- JaAViEr (0x5d)
Scripting
0x5d 0 1,581 Último mensaje 11 Febrero 2012, 20:13 pm
por 0x5d
[Tutorial]Aprendiendo PyQT4 [Parte4]- JaAViEr (0x5d)
Scripting
0x5d 0 1,829 Último mensaje 13 Febrero 2012, 02:27 am
por 0x5d
[Python]Problema con QPushButton (PyQt4)
Scripting
[u]nsigned 0 2,137 Último mensaje 5 Junio 2012, 21:24 pm
por [u]nsigned
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines