lunes, 16 de agosto de 2010

Mostrando un texto de ayuda - (Primeros pasos - PyQt4

Podemos proporcionar un texto de ayuda para cualquiera de nuestros widget.

#!/usr/bin/python

import sys
from PyQt4 import QtGui

class Tooltip(QtGui.QWidget):
def __init__(self, parent=None):

QtGui.QWidget.__init__(self, parent)

self.setGeometry(300, 300,250, 150)

self.setWindowTitle('Tooltip')

self.toolTip()
self.setToolTip('This is QWidget widget')

QtGui.QToolTip.setFont(QtGui.QFont('Times',10))

app = QtGui.QApplication(sys.argv)
tooltip = Tooltip()

tooltip.show()
sys.exit(app.exec_())


Para este ejemplo mostraremos una descripción para un QWidget.
       self.setToolTip('This is QWidget widget')
Para crear un tooltip llamaremos al método setToolTip(). Se pueden utilizar formatos de textos para enriquecerlos.
        QtGui.QToolTip.setFont(QtGui.QFont('Times',10))
Debido a que el tipo de letra por defecto de QToolTip se ve mal, vamos a cambiarla.

viernes, 13 de agosto de 2010

Icono de la aplicación (Primeros pasos - PyQt4)

El ícono de la aplicación es una pequeña imagen que se muestra en la esquina superior izquierda de la barra de título.
En el siguiente ejemplo vamos a mostrar como lo hacemos con PyQt4. También vamos a introducir algunos nuevos métodos.

#!/usr/bin/python

import sys
from PyQt4 import QtGui

class Icon(QtGui.QWidget):

def __init__(self, parent=None):
    QtGui.QWidget.__init__(self, parent)

    self.setGeometry(300, 300, 250, 150)

    self.setWindowTitle('Icon')
    self.setWindowIcon(QtGui.QIcon('dado.png'))

app = QtGui.QApplication(sys.argv)
icon = Icon()

icon.show()
sys.exit(app.exec_())


El primer ejemplo está escrito bajo el paradigma de programación procedural. El lenguaje de programación Python soporta varios paradigmas de programación como por ejemplo: Procedural y Programación Orientada a Objetos (POO).
class Icon(QtGui.QWidget):

def __init__(self, parent=None):
    QtGui.QWidget.__init__(self, parent)


Las tres cosas más importantes en la programación orientada a objetos son: las clases, los métodos y los datos (atributos).
Aquí creamos una clase llamada Icon. La clase Icon hereda de la clase QtGui.QWidget. Esto significa que tenemos que llamar a dos constructores. El primero de ellos para la clase Icon y el segundo de ellos para la clase heredada.

self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Icon')
self.setWindowIcon(QtGui.QIcon('dado.png'))

Las métodos han sido heredados de la clase QtGui.QWidget.

  • El método setGeometry() hace dos cosas: Sitúa la ventana en la pantalla y ajusta el tamaño de la ventana.Los primeros dos parámetros son las posiciones x e y de la ventana. El tercero es la anchura y el cuarto es la altura de la ventana.
  • El último método ajusta el icono en la aplicación. Para hacer esto, tenemos que crear un objeto QIcon. QIcon recibe la ruta de acceso a nuestro icono que se muestra. (en este ejemplo tengo el ícono en el mismo directorio que el código, por ello es que no se especifíca la ruta del ícono.


jueves, 12 de agosto de 2010

Ejemplo Simple (Primeros Pasos - PyQt4)

El siguiente ejemplo es muy simple, muestra una pequeña ventana. Sin embargo podemos hacer mucho con esta ventana. Podemos cambiar el tamaño, maximizar y minimizar la misma.
PyQt4 es una conjunto de herramientas de altísimo nivel.


#!/usr/bin/python

import sys
from PyQt4 import QtGui


app = QtGui.QApplication(sys.argv)
widget = QtGui.QWidget()

widget.resize(250, 150)
widget.setWindowTitle('Simple')


widget.show()


sys.exit(app.exec_())


Este código muestra una pequeña ventana en la pantalla.



Vamos a desglosar el código por parte para entender que hace cada una de las líneas.

# import sys
# from PyQt4 import QtGui

Aquí importamos los paquetes necesarios. Los widgets básicos (GUI) son localizados en el modulo QtGui.

# app = QtGui.QApplication(sys.argv)

Cada aplicación PyQt4 debe crear un objeto aplicación, éste objeto se encuentra en el módulo de QtGui.
El parámetro sys.argv es una lista de argumentos que ingresan desde la línea de comandos, es una manera que podemos utilizar para controlar el inicio de nuestros programas.

# widget = QtGui.QWidget()

El QWidget es la clase base de todos los objetos de interfaz de usuarios en PyQt4.

# widget.resize(250, 150)

El método resize() cambia el tamaño del widget. Es 250px de ancho y 150px de alto.


# widget.setWindowTitle('simple')

Aquí ponemos el título de nuestra ventana, éste se muestra en la barra de título.

# widget.show()

El método show() muestra el widget en la pantalla.

# sys.exit(app.exec_())

Finalmente, entramos en un mainloop de la aplicación. Los eventos se inician desde este punto.
El mainloop recibe los eventos desde el sistema de ventanas y despacha a los widgets de la aplicación.

Se pregunta por qué el método exec_ () tiene un guión? Porque el exec() es una palabra reservada de Python. Y así, exec_() se ha utilizado en su lugar.

martes, 10 de agosto de 2010

Python + Qt + 4 = PyQt4

Esto es una "pseudo-traducción" Ôò No soy muy bueno con el inglés, pero pretendo poner el mayor empeño para que lo expresado aquí sea claro y similar a lo que se explica en la siguiente dirección.
ZETCODE

  • Esto es un tutorial introductorio de PyQt4.
  • El propósito de este tutorial es para empezar con la caja de herramientas PyQt4.
  • El tutorial a sido creado y probado bajo GNU/Linux - distribución Mandriva.

Acerca de PyQt. (Wikipedia)

PyQt es un binding de la biblioteca gráfica Qt para el lenguaje de programación Python. La biblioteca
está desarrollada por la firma británica Riverbank Computing y está disponible para Windows, GNU/Linux y Mac OS X bajo diferentes licencias.
En agosto de 2009, tras intentar negociar con Riverbank Computing la liberación de PyQt bajo
licencia LGPL sin conseguirlo, Nokia, propietaria de Qt, libera bajo esta licencia un binding
similar, llamado PySide.


PyQt se implementa como un conjunto de módulos de python. Cuenta con más de 300 clases y casi 6000 funciones y métodos. Es un toolkit (caja de herramientas) multiplataforma. Corre en la mayoría de los sistemas operativos: Unix, Windows y Mac. Tiene dos tipo de licencias, esto le permite a los desarrolladores seleccionar entre la licencia GPL y la comercial. Anteriormente, la versión GPL sólo estaba disponible en Unix. A partir de la versión 4, la licencia GPL está disponible en todas las plataformas soportadas.

Debido a que hay una gran cantidad de clases disponibles, se han dividido en varios módulos.






El módulo QtCore contiene las funcionalidades básicas. Este módulo se utiliza para trabajar con tiempos, archivos y directorios, varios tipos de datos, flujos, urls, tipos mime, hilos o procesos.
El módulo QtGui contiene los componentes gráficos y las clases relacionadas. Este incluye por ejemplo botones, ventanas, barras de estados, barras de herramientas, desplazadores, mapas de bits, colores, fuentes, etc ...
El módulo QtNetwork contiene clases para programar redes. Estás clases permiten escribir clientes y servidores TCP/IP y UDP. Este hace que la programación de redes sea más fácil y más portable.
El módulo QtXml contiene clases para trabajar con archivos xml. Este módulo provee de implementaciones para ambas APIs SAX y DOM.
El módulo QtSvg proporciona clases para mostrar los contenidos de los archivos SVG. Scalabel Vertor Graphics (SVG) es un lenguaje para decribir gráficos de dos dimensiones y aplicaciones gráficas en XML. El módulo QtOpenGL se utiliza para renderizar gráficos 3D y 2D usando la librería OpenGL. El módulo permite la integración sin fisuras de la librería Qt GUI y la librería de OpenGL. El módulo QtSql proporciona clases para trabajar con base de datos.


Instalación de PyQt4

En Gnu/Linux vamos a realizar la instalación dependediendo de la distribución.
No se explica como instalar python, ya que este viene en todas las distribuciones GNU/Linux por defecto.

Debian - Ubuntu (aptitude)
Loguearnos como usuarios root en la consola

ponchito@ponchito$: su
password: #ingresamos nuestra contraseña.

Una vez registrados como root, ponemos en la consola.
[root@ponchito]# aptitude install pyqt4-dev-tools python-qt4 qt4-designer

Mandriva (urpmi)
Loarnos como usuarios root en la consola

bash-4.0$ su
password: #ingresamos nuestra contraseña.

Una vez registrados como root, ponemos en la consola.
[root@ponchito]#urpmi pyqt4-dev-tools python-qt4 qt4-designer