17 jul. 2009

Cambiando la configuración de gnome con gconf desde python

En gnome se tiene la herramienta gconf-editor donde se puede cambiar la configuración del escritorio y de las aplicaciones.
la figura muestra el editor:


La idea es usar el módulo de python llamado gconf para manipular parámetros de configuración del escritorio.
Se importa el módulo gconf
>>> import gconf
#Conectarse con el escritorio gnome.
>>> gconfClient = gconf.client_get_default()
#Se le asigna el nombre de usuario a la aplicación apps/pyconchatter/
>>> gconfClient.set_string("/apps/pyconchatter/username", "ecrespo")
True
#Se obtiene el nombre de usuario de la aplicación pyconchatter
>>> usuario = gconfClient.get_string("/apps/pyconchatter/username")
>>> print usuario
ecrespo
>>>
>>> panel = gconfClient.get_string("/apps/panel/toplevels/panel_1/auto_hide")
>>> print panel
None
#Se obtiene los valores de los accesos rápidos del teclado para el orca.
>>> print gconfClient.get_string("/apps/metacity/keybinding_commands/command_1")
orca
>>> print gconfClient.get_string("/apps/metacity/global_keybindings/run_command_1")
o
>>>
#Devuelve el nombre del archivo del fondo de pantalla del escritorio.
>>> print gconfClient.get_string("/desktop/gnome/background/picture_filename")
/home/ernesto/Escritorio/12003375.jpg


Con este módulo se pueden hacer aplicaciones gráficas con gtk y los parámetros de configuración de la aplicación se puede manejar desde gconf con python.

12 jul. 2009

Python en Android

En la lista de python Argentina pasan el enlace de una aplicación para android que le da soporte para realizar programas en python; la aplicación se llama android-scripting es una aplicación que brinda a los usuarios una serie de lenguajes script entre ellos python.
La aplicación permite hacer lo siguiente:
  • Capturar eventos
  • Iniciar actividades
  • Realizar llamadas teléfonicas
  • Enviar mensajes de texto
  • Escanear códigos de barras
  • Localización
  • Usar text-to-speech: Osea se puede generar mensajes accesibles para las personas invidentes!

Más información en el wiki del proyecto. Espero pronto hacer pruebas y traducir algunos tutoriales.
http://google-opensource.blogspot.com/2009/06/introducing-android-scripting.html
http://code.google.com/p/android-scripting/
http://code.google.com/p/android-scripting/w/list

5 jul. 2009

Desarrollo de aplicaciones gráficas con python+gtk+glade. Parte 5

Utilizar el widget textview.
El siguiente ejemplo se explicará el uso del widget textview. Se creará una ventana con 4 widgets, una etiqueta que menciona la lectura de archivos, luego el textview donde se mostrará el contenido de un archivo, el boton de selección de archivo y el boton de salir.
La figura muestra el diseño de la interfaz:


A continuación se explica el código del desarrollo:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Importación de módulos
import pygtk
pygtk.require('2.0')
import gtk, gtk.glade, inspect, sys
#Creación de la clase ej8
class ej8:
#Creación del método constructor de la clase.
def __init__(self):
#Se captura el archivo xml de la interfaz
self.w_tree = gtk.glade.XML('ej8.glade')
#Se asocia la ventana1
self.ventana1 = self.w_tree.get_widget('ventana1')
#Se asocia el widget textview1
self.textview1 = self.w_tree.get_widget('textview1')
#Se asocia el widget de la selección de archivo
self.seleccionararchivo = self.w_tree.get_widget('seleccionararchivo')
#Se asocia el boton salir
self.botonsalir = self.w_tree.get_widget('botonsalir')
#Se asocia los eventos con las señales
self.w_tree.signal_autoconnect(dict(inspect.getmembers(self)))
#Se asocia el objeto buffer de texto
self.buffertexto = gtk.TextBuffer()
#Se crea una lista vacía
self.lista = []
#Se crea la variable que contendrá el nombre del archivo seleccionado
self.archivo_name = ""
#Se crea el método de selección de archivo
def on_seleccionararchivo_file_set(self,*args):
#Se captura el nombre del archivo en la variable
self.archivo_name = self.seleccionararchivo.get_filename()
#Se abre el archivo colocando su contenido en una lista
self.lista = open(self.archivo_name,"r").readlines()
#Se recorre la lista y se coloca el contenido en el buffer de texto
for i in range(len(self.lista)):
self.buffertexto.insert_at_cursor(self.lista[i])
#Se coloca el contenido del buffer en el textview
self.textview1.set_buffer(self.buffertexto)
#Se oculta la ventana de selección de archivo
self.seleccionararchivo.hide()
#Se crea el método para el boton salir
def on_botonsalir_clicked(self,*args):
gtk.main_quit()
#Se crea el método para cerrar la aplicación
def on_ventana1_destroy(self,*args):
gtk.main_quit()
#Se crea el método main que muestra la ventana
def main(self,*args):
self.ventana1.show()
gtk.main()

if __name__ == "__main__":
app = ej8()
app.main()

A continuación de muestra la aplicación al ejecutarse:


Se selecciona el archivo y luego se muestra en el widget textview:

4 jul. 2009

Creado el proyecto python-autoaccesibilidad

La página del proyecto se encuentra en:

http://code.google.com/p/python-autoaccesibilidad/


La descripción del mismo se encuentra en el wiki:

Introducción

Este programa permitirá la instalación de aplicaciones accesibles en equipos con Debian ya instalados sin necesidad de tener una conexión a internet o un mirror en la red; es útil para laboratorios y centros de navegación.

Para los usuarios se tendrá 2 paquetes de Debian (metapaquete accesibilidad, accesibilidad-gnome-conf-spanish y accesibilidad-gnome-conf-english) que facilitará la instalación de sus equipos.

Detalles

La aplicación tendrá las siguientes características:

Los módulos que se necesitan son:

Contendrá 2 directorios:

Más información en el blog de libre accesibilidad:

http://libreaccesibilidad.blogspot.com/2009/07/proyecto-python-autoaccesibilidad.html

2 jul. 2009

Crear documentos ODF directamente desde python

Existe una herramienta y API para python que permite crear documentos y hojas de cálculo directamente desde un programa. El módulo se llama odfpy .

Bajar e instalar odfpy:
Se puede bajar desde el repositorio subversion:
svn export https://svn.forge.osor.eu/svn/odfpy/trunk odfpy
Luego se cambia al directorio odfpy
cd odfpy
Para instalar se ejecuta
python setup.py install

Desde easy_install:

easy_install odfpy

En este caso baja el paquete y lo instala.
Las herramientas que se instalan son:
  • mailodf - Envía un archivo ODF como html
  • odf2xhtml - Convierte ODF a (X)HTML
  • odf2xml - Crea un documento xml desde el archivo ODF
  • odf2mht - Convierte ODF a HTML
  • odf2war - Convierte ODF a archivo web de KDE
  • odfimgimport - Importa imagenes del documento
  • odflint - Verifica el archivo
  • odfmeta - Lista o cambia la información metadata de un archivo ODF
  • odfoutline - Muestra el documento fuera de línea
  • odfuserfield - Lista o cambia las los campos de declaración del usuario en un archivo ODF
  • xml2odf - Crea un archivo ODF a partir de un archivo XML
El ejemplo "Hola Mundo".
Se ejecuta el interpretador de comando de python
Importar los módulos de Opendocument
>>> from odf.opendocument import OpenDocumentText
Importar el módulo de manejo de documentos de texto
>>> from odf.text import P
Se usa el objeto que maneja documentos de texto
>>> textdoc = OpenDocumentText()
Se escribe Hola mundo en un elemento
>>> p = P(text="Hola mundo!")
Se agrega el elemento al documento
>>> textdoc.text.addElement(p)
Se salva el documento
>>> textdoc.save("holamundo",True)

En la siguiente imagen se muestra el documento creado.