- 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
Luego pueden cambiar las coordenadas con el ya mencionado self.objeto.setGeometry() (donde objeto puede ser un QLabel, QLineEdit, etc)
self.mi_label = QtGui.QLabel("Mi texto", self)
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
Paso a explicar:
self.connect(self.mi_boton, QtCore.SIGNAL("clicked()"), self.respuesta)
- 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
Código
Bien hasta ahí... Pero algo falta... La función respuesta !
# -*- 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
Haremos algo sencillo, que al dar clic en el botón, nos cree un QLabel con una respuesta:
Código
Pero que es eso ! ? , setText() ?
def respuesta(self): self.mi_label.setText('Gracias !')
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
Genial ! , ya tenemos nuestro primer programa en PyQT4. Nos aparecerá el formulario con el botón y al dar clic aparecerá el mensaje: "Gracias !"
# -*- 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
Los puntos :
- Dar función a un botón
- Crear un QLabel()
- Nuestro primer Hola mundo en PyQT4
Fuente : http://rootcodes.com/tutorialaprende-pyqt4-con-rootcodes-parte3
Saludos , Javier !