Hola a todos, aquí va mi primer mensaje en el foro de Qt en Español!
Mi nombre es Fernando Gómez y escribiré temas acerca de la programación en PyQt4. Primero comenzaré con un ejemplo de un programa básico escrito en PyQt4.
Sacaré algunas guías e información desde Zetcode.com traduciéndolas al español pero explicando un poco más a fondo todo.
Apenas voy iniciándome así que probablemente encuentren errores en algunas cosas, si es así no duden en correjirme y así mejorar las guías ^_^
Bien, primero explicaré qué es PyQt:
PyQt es conocido un Toolkit para Python que nos servirá para crear programas con interfaz gráfica utilizando las bibliotecas de Qt.
Un ejemplo de otros toolkits son PyGTK(combinación bibliotecas GTK con Python) o wxPython(wxWidgets + Python).
Una ventaja que tiene el programar con PyQt a comparación de Qt es que no necesitaremos compilar el código fuente del programa ya que Python es un lenguaje de programación interpretado; o sea que "entiende" directamente el código sin ser pasado a código máquina por un compilador.
Bueno después del salto comencemos directamente a crear nuestro primer programa!
¿Qué necesitamos?
Sòlo dos cosas:
Y obviamente Python instalado pero ese todas las distribuciones GNU/Linux lo tienen ya por defecto.
¿Qué es lo que haremos?
Crearemos una simple ventana. Debemos empezar por lo básico recuerden.
OK, empecemos. Primero crearemos un archivo de texto en la ruta que ustedes deseen y lo llamaremos: programa01.py y después lo abrimos con Gedit, KWrite, etc..
Este será el código de nuestro programa:
Recomiendo que no copien y peguen sino que lo escriban ustedes mismos ya que así se graban mejor cómo hacerlo.
A continuación explicaré todo línea por línea
Esto indica el intérprete a usar. En este caso decimos que utilice una utilidad llamada "env", esto sirve para que busque directamente en qué lugar se encuentra "python".
Por ejemplo pudimos haber puesto "#!/usr/bin/python" pero hagamos de cuenta que en esa ruta se encuentra python instalado en nuestro sistema y después vamos a otra máquina con otra distribución que contenga python en esa ruta, entonces nuestro programa no podrá ser interpretado y por lo tanto no funcionará.
Así que es recomendable usar siempre "env" y que busque la ruta de python .
Pasemos a la segunda línea:
Esto se llama importar un módulo. En este caso "sys" que es el que contiene las bibliotecas básicas del sistema y python.
Para importar módulos se utiliza la siguiente estructura:
Donde modulo es el nombre del que deseemos importar.
Tercer linea:
Esto es igual una importación de un módulo.
En este caso estamos diciendo que desde(from) el módulo PyQt4 se importe(import) su submódulo "QtGui". QtGui contiene los objetos gráficos básicos para una GUI. Por ejemplo, contiene los botones (llamados QPushButtons), Widgets, cuadros de diálogo, labels, entre otros objetos.
Bien, ahora vamos por la línea 6 (la 5 está vacía).
Con esto estamos creando un objeto de aplicación llamado app y en cada aplicación en PyQt4 debe crearse uno recuérdenlo. A este objeto de aplicación le pasaremos los parámetros sys.argv siempre le pasaremos estos parámetros así que jamás olviden ponerlos.
Mas o menos a como yo entiendo esto es que un objeto de aplicación es como el corazón de la app y que cuando se destruya o se salga de él la aplicación terminará.
En cuanto a los parámetros no sé muy bien cómo explicarlo ni tengo entendido bien qué son o cómo funcionan, si alguien puede explicármelo.
(Recuerden correjirme en todo lo que esté mal )
Ahora pasemos a la octava línea
Aquí estamos creando nuestro primer objeto llamándolo window y estamos diciendo el nuestro objeto es un QWidget obtenido desde la clase QtGui (recordemos que QtGui contiene widgets(QWidgets), botones(QPushButton), entre otras cosas) y por último terminamos la expresión del tipo de objeto con dos paréntesis.
Como vemos la estructura para crear el objeto es: objeto = el_tipo_que_es
Continuemos con la línea 9.
Aquí estamos utilizándo los métodos de objetos, en este caso el método setWindowTitle que nos ofrece Qt y dentro del paréntesis estamos especificando entre comillas el título de la ventana.
Para utilizar los métodos que modificarán nuestros objeto se hace de la siguiete forma: objeto.método(aquí_parámetros_del_método)
Ahora pasemos a la línea 10:
Con esto estamos especificando gracias al método resize que redimensione nuestro objeto window a un tamaño de 300x300. El primer parámetro es el ancho y el segundo el alto.
Continuemos con la penúltima línea de nuestro código:
Aquí usamos el método show(). Por defecto cada objeto que creamos está oculto siempre por lo tanto si lo queremos mostrar tendremos que modificarlo con este método, de lo contrario no podremos visualizarlo.
Y por último la línea final:
No estoy muy seguro de cómo explicar esta línea pero a como lo entiendo es que esto permite que nuestro objeto de aplicación app se cierre correctamente.
Y bien ahora solamente para ejecutar nuestra aplicación abrimos una terminal y ejecutamos:
Y listo. Obtendrán algo como esto:
Bueno eso es todo. En el siguiente ejemplo explicaré otros métodos y una nueva forma algo diferente de crear nuestro widget utilizando una clase además de añadir nuevos métodos.
Espero que me haya explicado bien y cualquier cosa no duden en comentar.
P.D. Cada concepto quiero ponerlo en un tema nuevo llamado Wiki o algo por el estilo para lo encuentren más fácilmente... ya lo haré luego.
Mi nombre es Fernando Gómez y escribiré temas acerca de la programación en PyQt4. Primero comenzaré con un ejemplo de un programa básico escrito en PyQt4.
Sacaré algunas guías e información desde Zetcode.com traduciéndolas al español pero explicando un poco más a fondo todo.
Apenas voy iniciándome así que probablemente encuentren errores en algunas cosas, si es así no duden en correjirme y así mejorar las guías ^_^
Bien, primero explicaré qué es PyQt:
PyQt es conocido un Toolkit para Python que nos servirá para crear programas con interfaz gráfica utilizando las bibliotecas de Qt.
Un ejemplo de otros toolkits son PyGTK(combinación bibliotecas GTK con Python) o wxPython(wxWidgets + Python).
Una ventaja que tiene el programar con PyQt a comparación de Qt es que no necesitaremos compilar el código fuente del programa ya que Python es un lenguaje de programación interpretado; o sea que "entiende" directamente el código sin ser pasado a código máquina por un compilador.
Bueno después del salto comencemos directamente a crear nuestro primer programa!
¿Qué necesitamos?
Sòlo dos cosas:
- Tener instalado Qt y PyQt4 en tu sistema.
- Tu editor de texto favorito. Puede ser Gedit, KWrite, Kate, etc..
Y obviamente Python instalado pero ese todas las distribuciones GNU/Linux lo tienen ya por defecto.
¿Qué es lo que haremos?
Crearemos una simple ventana. Debemos empezar por lo básico recuerden.
OK, empecemos. Primero crearemos un archivo de texto en la ruta que ustedes deseen y lo llamaremos: programa01.py y después lo abrimos con Gedit, KWrite, etc..
Este será el código de nuestro programa:
- Código:
#!/usr/bin/env python
import sys
from PyQt4 import QtGui
app = QtGui.QApplication(sys.argv)
window = QtGui.QWidget()
window.setWindowTitle("Titulo de ventana")
window.resize(300, 300)
window.show()
sys.exit(app.exec_())
Recomiendo que no copien y peguen sino que lo escriban ustedes mismos ya que así se graban mejor cómo hacerlo.
A continuación explicaré todo línea por línea
- Código:
#!/usr/bin/env python
Esto indica el intérprete a usar. En este caso decimos que utilice una utilidad llamada "env", esto sirve para que busque directamente en qué lugar se encuentra "python".
Por ejemplo pudimos haber puesto "#!/usr/bin/python" pero hagamos de cuenta que en esa ruta se encuentra python instalado en nuestro sistema y después vamos a otra máquina con otra distribución que contenga python en esa ruta, entonces nuestro programa no podrá ser interpretado y por lo tanto no funcionará.
Así que es recomendable usar siempre "env" y que busque la ruta de python .
Pasemos a la segunda línea:
- Código:
import sys
Esto se llama importar un módulo. En este caso "sys" que es el que contiene las bibliotecas básicas del sistema y python.
Para importar módulos se utiliza la siguiente estructura:
- Código:
import modulo
Donde modulo es el nombre del que deseemos importar.
Tercer linea:
- Código:
from PyQt4 import QtGui
Esto es igual una importación de un módulo.
En este caso estamos diciendo que desde(from) el módulo PyQt4 se importe(import) su submódulo "QtGui". QtGui contiene los objetos gráficos básicos para una GUI. Por ejemplo, contiene los botones (llamados QPushButtons), Widgets, cuadros de diálogo, labels, entre otros objetos.
Bien, ahora vamos por la línea 6 (la 5 está vacía).
- Código:
app = QtGui.QApplication(sys.argv)
Con esto estamos creando un objeto de aplicación llamado app y en cada aplicación en PyQt4 debe crearse uno recuérdenlo. A este objeto de aplicación le pasaremos los parámetros sys.argv siempre le pasaremos estos parámetros así que jamás olviden ponerlos.
Mas o menos a como yo entiendo esto es que un objeto de aplicación es como el corazón de la app y que cuando se destruya o se salga de él la aplicación terminará.
En cuanto a los parámetros no sé muy bien cómo explicarlo ni tengo entendido bien qué son o cómo funcionan, si alguien puede explicármelo.
(Recuerden correjirme en todo lo que esté mal )
Ahora pasemos a la octava línea
- Código:
window = QtGui.QWidget()
Aquí estamos creando nuestro primer objeto llamándolo window y estamos diciendo el nuestro objeto es un QWidget obtenido desde la clase QtGui (recordemos que QtGui contiene widgets(QWidgets), botones(QPushButton), entre otras cosas) y por último terminamos la expresión del tipo de objeto con dos paréntesis.
Como vemos la estructura para crear el objeto es: objeto = el_tipo_que_es
Continuemos con la línea 9.
- Código:
window.setWindowTitle("Titulo de ventana")
Aquí estamos utilizándo los métodos de objetos, en este caso el método setWindowTitle que nos ofrece Qt y dentro del paréntesis estamos especificando entre comillas el título de la ventana.
Para utilizar los métodos que modificarán nuestros objeto se hace de la siguiete forma: objeto.método(aquí_parámetros_del_método)
Ahora pasemos a la línea 10:
- Código:
window.resize(300, 300)
Con esto estamos especificando gracias al método resize que redimensione nuestro objeto window a un tamaño de 300x300. El primer parámetro es el ancho y el segundo el alto.
Continuemos con la penúltima línea de nuestro código:
- Código:
window.show()
Aquí usamos el método show(). Por defecto cada objeto que creamos está oculto siempre por lo tanto si lo queremos mostrar tendremos que modificarlo con este método, de lo contrario no podremos visualizarlo.
Y por último la línea final:
- Código:
sys.exit(app.exec_())
No estoy muy seguro de cómo explicar esta línea pero a como lo entiendo es que esto permite que nuestro objeto de aplicación app se cierre correctamente.
Y bien ahora solamente para ejecutar nuestra aplicación abrimos una terminal y ejecutamos:
- Código:
python programa01.py
Y listo. Obtendrán algo como esto:
Bueno eso es todo. En el siguiente ejemplo explicaré otros métodos y una nueva forma algo diferente de crear nuestro widget utilizando una clase además de añadir nuevos métodos.
Espero que me haya explicado bien y cualquier cosa no duden en comentar.
P.D. Cada concepto quiero ponerlo en un tema nuevo llamado Wiki o algo por el estilo para lo encuentren más fácilmente... ya lo haré luego.