# Primeros pasos con PyQt y QtDesigner. Primer programa con Python
#### 05/05/2020

Vamos a crear nuestro primer programa gráfico con Python y PyQt, es mucho más sencillo de lo que parece. Lo primero que tenemos que hacer es instalar las librerías. Si estás en *Arch/Linux* como estoy yo:

	sudo pacman -S python-pyqt5 python

En nuestro menú nos habrá salido un programa llamado *QtDesigner*, lo abrimos

![QtDesigner](https://silly-goldberg-68d2eb.netlify.com/primeros-pasos-python-qt/qtdesigner.png	"Abriendo QtDesigner")

Cada vez que lo abrimos nos pregunta con que *plantilla* vamos a empezar. Le daremos *Main Window*, que es la raiz del programa. Qt funciona con un sistema de *Widgets*, todo lo que se añade es un *widget*, un botón, un label, etc.
Para crear nuestro primer programa añadiremos un *Label* y un *Push Button* a  nuestra ventana.

![Main Window](https://myblog.clonbg.es/primeros-pasos-python-qt/mainWindow.png	"Arrastrando Widgets")

Podemos ver como queda la interfaz con *Control+R*

![Vista](https://myblog.clonbg.es/primeros-pasos-python-qt/vista.png	"Vista del programa")

Ahora solo falta guardar la interfaz. *File > Save* y guardamos el archivo *ui*. Yo lo he llamado *post.ui*. Ahora al lado de donde hemos guardado el archivo *post.ui* creamos un archivo de *python*, yo lo he llamado *post.py* con este contenido:

	from PyQt5 import QtWidgets, uic, QtCore
	from PyQt5.QtWidgets import *

	app = QtWidgets.QApplication([])
	dlg = uic.loadUi('post.ui')

	# Contenido del programa

	dlg.show()
	app.exec()

y lo ejecutamos desde la línea de terminal:

	python post.py

Si todo ha ido bien se nos tiene que abrir el programa. Ahora vamos a hacer que cuando hagamos click en el botón cambie el texto del *Label*. El programa quedaría así:

	from PyQt5 import QtWidgets, uic, QtCore
	from PyQt5.QtWidgets import *

	app = QtWidgets.QApplication([])
	dlg = uic.loadUi('post.ui')

	# Creamos la función que cambiará el texto
	def cambio():
		dlg.label.setText('Este texto ha cambiado')

	# Creamos la acción con su función
	dlg.pushButton.clicked.connect(cambio)

	dlg.show()
	app.exec()

Y cuando clickamos en el botón:

![textoCambiado](https://myblog.clonbg.es/primeros-pasos-python-qt/texto.png	"Texto cambiado")

Salu2
