Difference between revisions of "ES/Manuales/GuiaAOO/TemasAvanzados/Macros/Python/ConceptosIniciales"
(Created page with "=== Organización de macros === Las macros en PyUNO, se organizan en archivos con extensión '''py''', donde cada archivo para a ser una biblioteca y cada función una macro. Má…") |
m |
||
(19 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{DISPLAYTITLE: Conceptos iniciales}} | ||
=== Organización de macros === | === Organización de macros === | ||
− | Las macros en PyUNO, se organizan en archivos con extensión '''py''', donde cada archivo | + | Las macros en PyUNO, se organizan en archivos con extensión '''py''', donde cada archivo es una biblioteca y cada función una macro. Más adelante veremos que también podemos organizarlas en clases. |
+ | |||
+ | |||
+ | === Configurando nuestro entorno de trabajo === | ||
+ | Dado que AOO no incorpora ningún editor para macros en Python, tenemos que hacer uso de algún editor externo. Para empezar, recomendamos el uso de [http://geany.org Geany], un IDE multiplataforma y multilenguaje que soporta Python. | ||
+ | |||
+ | [[File:Pymacros001.png]] | ||
+ | |||
+ | |||
+ | La configuración recomendada de trabajo para este editor es la siguiente: | ||
+ | |||
+ | [[File:Pymacros002.png]] | ||
+ | |||
+ | |||
+ | [[File:Pymacros003.png]] | ||
+ | |||
+ | |||
+ | [[File:Pymacros004.png]] | ||
+ | |||
+ | |||
+ | [[File:Pymacros005.png]] | ||
+ | |||
+ | |||
+ | Como ya se vio en la introducción, nuestras macros pueden estar en tres diferentes lugares: sección mis macros, solo disponible para el usuario actual, sección macros del sistema, disponibles para todos los usuarios y dentro de un archivo de AOO. De aquí en adelante, asumiremos que estamos trabajando en la sección mis macros, pues en este sitio es el de más fácil acceso para todos. | ||
+ | |||
+ | Dentro de la carpeta '''python''' crea un archivo que se llame '''mismacros.py''', dentro de el escribe la siguiente macro y guardala: | ||
+ | <source lang=python> | ||
+ | import uno | ||
+ | |||
+ | def pruebas(): | ||
+ | print ('Todo correcto') | ||
+ | return None | ||
+ | </source> | ||
+ | |||
+ | |||
+ | Ahora, si estas usando Linux, abre una terminal de comandos y ejecuta Apache OpenOffice (AOO de aquí en adelante) con la siguiente instrucción: | ||
+ | <pre> | ||
+ | $ soffice -calc | ||
+ | </pre> | ||
+ | Ve a Herramientas -> Macros -> Ejecutar macros... y selecciona la macro '''pruebas''' recién creada. | ||
+ | |||
+ | |||
+ | [[File:py_img_0001.png]] | ||
+ | |||
+ | |||
+ | Ejecuta la macro y mira el resultado en la ventana del terminal. | ||
+ | |||
+ | |||
+ | [[File:py_img_0002.png]] | ||
+ | |||
+ | |||
+ | Si eres usuario de otro sistema operativo, puedes usar la siguiente alternativa para mostrar cualquier mensaje en pantalla. No te preocupes por ahora de estas líneas, cada una será usada y explicada en su momento. | ||
+ | <source lang=python> | ||
+ | import uno | ||
+ | |||
+ | def pruebas(): | ||
+ | msgbox ('Todo correcto') | ||
+ | return | ||
+ | |||
+ | def msgbox(message): | ||
+ | from com.sun.star.awt import Rectangle | ||
+ | |||
+ | ctx = uno.getComponentContext() | ||
+ | sm = ctx.getServiceManager() | ||
+ | toolkit = sm.createInstanceWithContext('com.sun.star.awt.Toolkit', ctx) | ||
+ | MsgBox = toolkit.createMessageBox( | ||
+ | toolkit.getDesktopWindow(), | ||
+ | Rectangle(), | ||
+ | 'infobox', | ||
+ | 1, | ||
+ | 'UNOPython', | ||
+ | str(message)) | ||
+ | return MsgBox.execute() | ||
+ | </source> | ||
+ | |||
+ | |||
+ | Por supuesto, verifica que funcione: | ||
+ | |||
+ | |||
+ | [[File:Py_img_0004.png]] | ||
+ | |||
+ | |||
+ | Solo para probar nuestro entorno de trabajo, agrega dos nuevas macros y '''llámalas''' desde la primera, guarda y prueba. Recuerda de cambiar los '''print''' (puedes dejarlos si quieres) y usar nuestra macro '''msgbox''' si prefieres, también puedes ejecutar la macro '''pruebas''' con la combinación de teclas definida en el punto siguiente. | ||
+ | <source lang=python> | ||
+ | import uno | ||
+ | |||
+ | def pruebas(): | ||
+ | macro01() | ||
+ | macro02() | ||
+ | return | ||
+ | |||
+ | def macro01(): | ||
+ | print ('Otra macro') | ||
+ | return | ||
+ | |||
+ | def macro02(): | ||
+ | print ('Una tercera') | ||
+ | return | ||
+ | </source> | ||
+ | |||
+ | |||
+ | Por ultimo, para que sea sencillo '''llamar''' a esta macro, asignala a la combinación de teclas que más te guste y que, por supuesto, no este usada por AOO, se recomienda asignar esta combinación de teclas a todo AOO, para que puedas llamar la macro desde cualquier aplicación, como puedes ver en la siguiente imagen. | ||
+ | |||
+ | |||
+ | [[File:Py_img_0003.png]] | ||
+ | |||
+ | |||
+ | Resumiendo, mientras no se indique lo contrario, todas nuestras macros de ejemplo mostradas, serán '''ejecutadas''' desde la primer macro llamada '''pruebas''', de preferencia, con una combinación de teclas. | ||
+ | |||
+ | |||
+ | === Utilidades de apoyo === | ||
+ | Las siguientes herramientas, nos ayudarán en el desarrollo y estudio de macros con Python, por ahora, solo asegúrate de dejarlas trabajando como en los ejemplos, más adelante, explicaremos como trabajan y como puedes desarrollar las tuyas. | ||
+ | |||
+ | Instala la siguiente extensión [http://extensions.services.openoffice.org/project/MRI MRI], esta maravillosa extensión nos ayudará a obtener toda la información de un '''objeto'''. | ||
+ | |||
+ | |||
+ | {{ES/Foro|macros}} | ||
+ | |||
+ | [[Category:ES]][[Category:Manuales]][[Category:ES/Python]] |
Latest revision as of 15:38, 9 May 2013
Organización de macros
Las macros en PyUNO, se organizan en archivos con extensión py, donde cada archivo es una biblioteca y cada función una macro. Más adelante veremos que también podemos organizarlas en clases.
Configurando nuestro entorno de trabajo
Dado que AOO no incorpora ningún editor para macros en Python, tenemos que hacer uso de algún editor externo. Para empezar, recomendamos el uso de Geany, un IDE multiplataforma y multilenguaje que soporta Python.
La configuración recomendada de trabajo para este editor es la siguiente:
Como ya se vio en la introducción, nuestras macros pueden estar en tres diferentes lugares: sección mis macros, solo disponible para el usuario actual, sección macros del sistema, disponibles para todos los usuarios y dentro de un archivo de AOO. De aquí en adelante, asumiremos que estamos trabajando en la sección mis macros, pues en este sitio es el de más fácil acceso para todos.
Dentro de la carpeta python crea un archivo que se llame mismacros.py, dentro de el escribe la siguiente macro y guardala:
import uno def pruebas(): print ('Todo correcto') return None
Ahora, si estas usando Linux, abre una terminal de comandos y ejecuta Apache OpenOffice (AOO de aquí en adelante) con la siguiente instrucción:
$ soffice -calc
Ve a Herramientas -> Macros -> Ejecutar macros... y selecciona la macro pruebas recién creada.
Ejecuta la macro y mira el resultado en la ventana del terminal.
Si eres usuario de otro sistema operativo, puedes usar la siguiente alternativa para mostrar cualquier mensaje en pantalla. No te preocupes por ahora de estas líneas, cada una será usada y explicada en su momento.
import uno def pruebas(): msgbox ('Todo correcto') return def msgbox(message): from com.sun.star.awt import Rectangle ctx = uno.getComponentContext() sm = ctx.getServiceManager() toolkit = sm.createInstanceWithContext('com.sun.star.awt.Toolkit', ctx) MsgBox = toolkit.createMessageBox( toolkit.getDesktopWindow(), Rectangle(), 'infobox', 1, 'UNOPython', str(message)) return MsgBox.execute()
Por supuesto, verifica que funcione:
Solo para probar nuestro entorno de trabajo, agrega dos nuevas macros y llámalas desde la primera, guarda y prueba. Recuerda de cambiar los print (puedes dejarlos si quieres) y usar nuestra macro msgbox si prefieres, también puedes ejecutar la macro pruebas con la combinación de teclas definida en el punto siguiente.
import uno def pruebas(): macro01() macro02() return def macro01(): print ('Otra macro') return def macro02(): print ('Una tercera') return
Por ultimo, para que sea sencillo llamar a esta macro, asignala a la combinación de teclas que más te guste y que, por supuesto, no este usada por AOO, se recomienda asignar esta combinación de teclas a todo AOO, para que puedas llamar la macro desde cualquier aplicación, como puedes ver en la siguiente imagen.
Resumiendo, mientras no se indique lo contrario, todas nuestras macros de ejemplo mostradas, serán ejecutadas desde la primer macro llamada pruebas, de preferencia, con una combinación de teclas.
Utilidades de apoyo
Las siguientes herramientas, nos ayudarán en el desarrollo y estudio de macros con Python, por ahora, solo asegúrate de dejarlas trabajando como en los ejemplos, más adelante, explicaremos como trabajan y como puedes desarrollar las tuyas.
Instala la siguiente extensión MRI, esta maravillosa extensión nos ayudará a obtener toda la información de un objeto.
Si tienes dudas acerca de lo aquí explicado, tienes algún problema con AOO, o quieres ampliar la información, no dudes en dirigirte al Foro Oficial en español de Apache OpenOffice para Macros y API UNO |