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:
(http://rootcodes.com/tutorial_qt/qlabel_ejemplo.png)
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:
self.mi_label = QtGui.QLabel("Mi texto", self)
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:
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:
# -*- 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,200) #Dimensiones del formulario
self.mi_boton = QtGui.QPushButton("Boton", self) # Creo el QPushButton()
self.mi_boton.setGeometry(10,10,92,27) #X = 10 ; Y = 15 ; Width = 92 ; Height = 27
self.connect(self.mi_boton, QtCore.SIGNAL('clicked()'), self.respuesta)
self.mi_label = QtGui.QLabel('', self)#Lo definimos sin texto, luego le damos un valor
self.mi_label.setGeometry(10,40,92,27)
aplicacion = QtGui.QApplication(sys.argv)
formulario = Mi_Programa() # Instanciamos la clase de nuestro programa
formulario.show() # Mostramos el Formulario
aplicacion.exec_() # Ejecutamos
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:
def respuesta(self):
self.mi_label.setText('Gracias !')
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:
# -*- 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,200) #Dimensiones del formulario
self.mi_boton = QtGui.QPushButton("Boton", self) # Creo el QPushButton()
self.mi_boton.setGeometry(10,10,92,27) #X = 10 ; Y = 15 ; Width = 92 ; Height = 27
self.connect(self.mi_boton, QtCore.SIGNAL('clicked()'), self.respuesta)
self.mi_label = QtGui.QLabel('', self)
self.mi_label.setGeometry(10,40,92,27)
def respuesta(self):
self.mi_label.setText('Gracias !') #Defino un texto al dar clic en self.mi_boton
aplicacion = QtGui.QApplication(sys.argv)
formulario = Mi_Programa() # Instanciamos la clase de nuestro programa
formulario.show() # Mostramos el Formulario
aplicacion.exec_() # Ejecutamos
Genial ! , ya tenemos nuestro primer programa en
PyQT4. Nos aparecerá el formulario con el botón y al dar clic aparecerá el mensaje: "Gracias !"
(http://rootcodes.com/tutorial_qt/boton_funcion.png)
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 !