Python + Qt = PyQt (Desarrollo fácil y rápido de aplicaciones con GUI)
Hace unos días me encomendaron realizar una pequeña aplicación, por parte del grupo de investigación donde colaboro, que permitiese visualizar dos imágenes distintas para poder observar cómodamente las diferencias entre una imagen original y la imagen obtenida tras aplicar métodos de umbralización sobre la misma. Conocía el uso de la librería Qt para desarrollo de aplicaciones gráficas, pero hacer la aplicación en C++ tal vez me dedicaría más tiempo del que deseaba emplear para dicho objetivo. También había programado en alguna que otra ocasión con Python y sabía que existían bindings para programar aplicaciones gráficas en GTK, pero por desgracia esta librería no la conocía, y ponerme a conocerla me iba a llevar mucho más tiempo. La solución perfecta ha sido utilizar Python y Qt mediante PyQt, del cual no sabía su existencia, pero ha sido un hallazgo realmente importante para mí.
Sobre Qt
Para simplificar lo más posible el concepto de las librerías Qt, podría decirse que Qt es a KDE lo que GTK a Gnome. Son unas magníficas librerías que hacen realmente sencillo y rápido el desarrollo de aplicaciones gráficas. Originalmente estaban desarrolladas para el lenguaje de programación C++, pero debido al éxito que están cosechando, se están realizando conversiones de las mismas a otros lenguajes de programación como Java (De forma oficial por Trolltech) o Python.
Lo que más me gusta de esta librería es la herramienta que incluye para diseñar las ventanas de forma gráfica (Qt-Desiger) y las herramientas que incluye para generar los Makefiles para compilar nuestros proyectos de forma casi automática. Os dejo una captura de como se trabaja con Qt-Desginer.
Si queréis aprender a utilizar dicha librería os recomiendo que visitéis el siguiente enlace oficial de Trolltech con multitud de ejemplos realizados con Qt4.
Sobre Python
Lenguaje de programación orientado a objetos creado por Guido van Rossum en 1990 durante unas vacaciiones (que forma más curiosa de entretenerse ^_^U). Se trata de un lenguaje minimalista, que reduce lo máximo posible el código y que puede ser utilizado para realizar scripting. Es un lenguaje interpretado y no compilado, por lo que los programas realizados en dicho lenguaje no tendrán el rendimiento como uno de sus pilares, pero sin embargo se utiliza muchísimo últimamente, incluso ya comenté anteriormente algún que otro programa escrito en dicho lenguaje en este blog (Emesene).
A pesar de ser un lenguaje interpretado, también cuenta con una magnifica integración con otros lenguajes y herramientas, y posiblemente es el lenguaje en el que se desarrollan más librerías actualmente.
Os dejo a continuación una serie de enlaces de donde podéis aprender de forma rápida y sencilla a manejar este lenguaje de programación.
- Documento de iniciación a python de Juan Antonio Romero (Universidad de Córdoba). MUY BUENO. (Enlace)
- Python Library Reference
- Guido van Rossum Python Tutorial
- Enlace al libro Dive into Python
- Enlace al libro How to Think Like a Computer Scientist. Learning with Python .
Sobre PyQT
PyQt es el proyecto que realiza la adaptación de las librerías de Qt al lenguaje Python.
Instalación de herramientas necesarias en Ubuntu
Para poder realizar todas las operaciones oportunas con las herramientas, librerías y lenguajes que acabo de comentar tendréis que tener instalados una serie de paquetes que os listo a continuación en la habitual línea de comandos para que hagáis nuestro querido “copy & paste”.
~$ sudo apt-get install pyqt4-dev-tools python python-qt4 qt4-designer
Por otra parte os recomiendo que os instaléis también los paquetes de documentación (qt4-doc y python-qt4-doc) para que dispongáis de toda la documentación de las APIs en /usr/share/doc, y no tengáis que acceder a la misma por internet.
Otra recomendación es que os instaléis el entorno de desarrollo Eric pensado específicamente para programar con PyQt.
Enlaces de interés
Una vez hayáis practicado con el lenguaje python y con las librerías Qt (en C++), tendréis que dar el paso de programar en python con Qt mediante PyQt. Os dejo a continuación una serie de enlaces muy útiles (a mi me fué de gran ayuda el primero, por los ejemplos que incluye):
- Creating GUI Applications with PyQt and Qt Designer
-
PyQT4 Tutorial – Un tutorial paso a paso de PyQt4
-
ZetCode’s PyQT4 tutorial – Otro tutorial paso a paso de PyQt4
-
PyQT-tutorial – Usos de Qt-Designer, muy bueno para principiantes.
-
Jonathan Gardner’s PyQt tutorial – Escribiendo una GUI para la utilidad at.
Distribución de aplicaciones
Para la distribución de aplicaciones en python existe el módulo distutil. Y otra utilidad que os vendrá de perlas para exportar vuestra aplicación para que funcione en sistemas operativos windows, sin necesidad de que se tenga instalado en el equipo del cliente un intérprete de python, es py2exe.
Few days ago my research group entrusted me to make a little application for displaying a pair of images at the same time in order to observe easily the differences between them. I knew the library Qt for the development of graphical applications with C++, but I thought that using it would take me longer than desired to achieve my goal. I also had ever programmed with Python and I knew the existence of bindings for programming graphical applications with GTK library, but I had never programmed with this last one. The perfect solution has been the usage of Python and Qt by means of PyQt, that has been a very important find to me.
About Qt
To simplify as much as possible, Qt is for KDE what GTK is for Gnome. Qt is a great library for the easy and quick development of graphical applications. It was originally developed for C++ language, but because of the success they are reaping, some bindings are appearing for other programming languages like Java (developed by TrollTech) or Python.
Some of the most interesting tools and features of Qt are:
- The graphical application to design your forms and applications with Qt (Qt-Designer)
- Its complete and well-formated documentation.
- The tools provided for managing the Qt projects.
Here is one snapshot of Qt-Designer
If you want to learn to develop programs with such a library I recommend you take a look to the official documentation of QT. There are a huge amount of examples.
About Python
It is a object-oriented programming language created by Guido Van Rossum in 1990 throughout a holidays (What a curious way of entertainment! ^_^U). It is a minimalist language which aims to reduce the code as much as possible and It can be used for scripting purposes. It’s a interpreted language, it isn’t compiled, and therefore the performance of the code is not one of its major features. Nevertheless, it’s one of the programming languages most used lately. Python has an excelent integration with other programming languages and tools, and many of the existent libraries developed with other languages have bindings for their integration.
Here I show you some links with nice tutorials for learning quickly this language:
- Starting with Python. Written by Juan Antonio Romero (University of Córdoba). Very good (spanish) (Enlace)
- Python Library Reference
- Guido van Rossum Python Tutorial
- Link to book Dive into Python
- Link to book How to Think Like a Computer Scientist. Learning with Python .
About PyQT
PyQt is a set of Python bindings for Qt libraries. The bindings are implemented as a set of Python modules and contain over 300 classes and over 6,000 functions and methods.
Neccessary installation packages for Ubuntu
In order to develop applications with PyQt you need to install the following packages
~$ sudo apt-get install pyqt4-dev-tools python python-qt4 qt4-designer
I recommend you installing the documentation packages (qt4-doc y python-qt4-doc) in order to have them in your local system (/usr/share/doc) and not have to access them by Internet. I also suggest you to try the IDE Eric, that is specially designed for programming with PyQt.
Interesting links
Once you have certain experience separately with Python and Qt, it’s time to take the leap for programming with PyQt. You can take a look to these useful links with some tutorials and examples:
- Creating GUI Applications with PyQt and Qt Designer
- PyQT4 Tutorial – A step by step tutorial of PyQt4.
- ZetCode’s PyQT4 tutorial – Another step by step tutorial.
- PyQT-tutorial - Usage of Qt-Designer, very interesting for begginers.
- Jonathan Gardner’s PyQt tutorial – Written a GUI for the tool “at”.
Distribution of applications
For the distribution of applications with Python you have the distutil module. Other very interesting tool is py2exe. With this program you can export your applications to be used in Windows operative systems without the necessity of having a python interpreter in the client computers.
loading...




loading...
Excelente artículo. Habrá que probar todo esto con un poco más de tiempo.
Saludos.
loading...
Hola,
Buen articulo, queria hacer unas consultas:
- En python +Qt puedo compilar para generar un *.exe en Windows?
loading...
Hola Luis, con la aplicación py2exe que comento se puede generar el ejecutable .exe para windows, pero si quieres que dicho ejecutable se pueda ejecutar en otros ordenadores debes pasar la carpeta “Dist” que te crea “py2exe” entera, ya que en dicha carpeta existen algunos archivos que contienen al interprete de Python y las librerías de PyQt.
Un saludo
loading...
Hola, ante todo, felicitaciones por esta gran introduccion,muy buena.Tengo instalado Damn Small Linux y tambien Windows, por ahora trabajo en Windows y me divierto en tiempos libres con Linux. Quiero empezar a usar Python. Quisiera saber (he leido algunas cosas por ahi, sobre que la version de pyqt,decian que la 3 ya son GPL para windows y tambien quiero usarla con Qt Desingner 3), cual es el procedimiento para instalar esto en Windows, por orden primero Python luego pyqt yluego QT Designer o si es en otro orden. Gracias.
loading...
Hola Julio, en la siguiente Web puedes encontrar todas las versiones de PyQt para diferentes sistemas operativos : http://www.riverbankcomputing.co.uk/pyqt/download.php .
Si te fijas en la zona de paquetes binarios, hay un archivo ejecutable que te instala de forma conjunta python2.5 y pyqt4. En caso de que lo instales por separado creo recordar que primero hay que tener instalado python2.5 para que al instalar PyQt te detecte si existe alguna instalación de python realizada. No se si existe una versión de PyQt3 para Windows, por lo que no podría ayudarte en este aspecto, aunque si te aconsejaría que te pasases a la versión 4 que te da muchas más facilidades para programar.
Si tienes alguna duda más al respecto de Windows te rogaría que me la comunicases por correo, ya que este blog está orientado como habrás observado al mundo del software libre en general
.
Un saludo!
loading...
Me han venido cojonudos estos enlaces. No sabia como pasar del Qt Designer a un .py
Gracias !!
loading...
Pueden enviarme el tutorial Documento de iniciación a python de Juan Antonio Romero (Universidad de Córdoba).
No existe más este link ni la página del autor.
robifaria arrowa yahoo punto es.
Agradecido de antemano.
loading...
LLegue de pura suerte a esta pagina. Y la verdad que me gustaria no olvidarme de agradecer sobre este post que me viene re bien por que tuve varios intento de ver como se instalaba esto de pyqt. Asi que muchisimas gracias. Muy valioso el dato.