Sugar Activity Tutorial/lang-pt: Difference between revisions
(New page: {{Translations}} This tutorial is under translation Este tutorial explica passo a passo como criar o [http://divieira.googlepages.com/HelloWorld-1.xo pacote da atividade Hello World ]. Is...) |
|||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
{{Translations}} |
{{Translations}} |
||
This tutorial is under translation |
This tutorial is under translation |
||
Este tutorial explica passo a passo como criar o [http://divieira.googlepages.com/HelloWorld-1.xo pacote da atividade Hello World ]. |
Este tutorial explica passo a passo como criar o [http://divieira.googlepages.com/HelloWorld-1.xo pacote da atividade Hello World ]. |
||
Line 117: | Line 118: | ||
sugar-install-bundle HelloWorld-1.xo |
sugar-install-bundle HelloWorld-1.xo |
||
Uma alternativa ao comando acima é de copiar direto o diretorio *.activity no direticio usr/share/activity. Em alguns casos, foi uma alternativa mais eficiente que usar sugar-install-bundle *.ro |
|||
== Veja mais em == |
== Veja mais em == |
Latest revision as of 18:17, 10 November 2007
Please copy/paste "{{Translationlist | xx | origlang=en | translated={{{translated}}}}}" (where xx is ISO 639 language code for your translation) to Sugar Activity Tutorial/lang-pt/translations | HowTo [ID# 76413] +/- |
This tutorial is under translation
Este tutorial explica passo a passo como criar o pacote da atividade Hello World .
Isto assume que você ja tem um ambientel de desenvolvimente Sugar instalado.
- Crie o diretório do pacote:
mkdir HelloWorldActivity.activity mkdir HelloWorldActivity.activity/activity
- Escreva o arquivo activity.info , para descrever seu pacote no sub-diretorio da atividade (e.g. HelloWorldActivity.activity/activity/activity.info). Nas especificações presentes em Activity Bundles esta explicado em detalhes o significado de cada campo.
[Activity] name = HelloWorld service_name = org.laptop.HelloWorldActivity class = HelloWorldActivity.HelloWorldActivity icon = activity-helloworld activity_version = 1 show_launcher = yes
- Faça um icone para sua atividade, de acordo com o formato de icone e coloque-o no sub-diretorio da atividade. O nome do arquivo deve coincidir com o especificado no arquivo de informações(e.g. activity-helloworld.svg).
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [ <!ENTITY fill_color "#FFFFFF"> <!ENTITY stroke_color "#000000"> ]> <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50"> <rect x="1" y="1" width="48" height="48" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:2"/> </svg>
- Escreva o script setup.py no diretório de nível mais alto (e.g. HelloWorldActivity.activity/setup.py), que na maior parte das vezes irá se parecer com este:
#!/usr/bin/env python from sugar.activity import bundlebuilder if __name__ == "__main__": bundlebuilder.start("MyActivityName")
- Programe sua atividade. O nome que você especificou no arquivo .info como "class" é o nome da classe que roda o seu código. Para o arquivo activity.info abaixo, nós específicamos um módulo de alto-nível chamado HelloWorldActivity.HelloWorldActivity (note que o uso de letras maiusculas em nomes de módulos é considerada ruim no estilo Python, sinta-se à vontade para utilizar o nome da atividade com estilo de nomes padrão).
File: HelloWorldActivity.py |
from sugar.activity import activity import logging import sys, os import gtk class HelloWorldActivity(activity.Activity): def hello(self, widget, data=None): logging.info('Hello World') def __init__(self, handle): print "running activity init", handle activity.Activity.__init__(self, handle) print "activity running" # Creates the Toolbox. It contains the Activity Toolbar, which is the # bar that appears on every Sugar window and contains essential # functionalities, such as the 'Collaborate' and 'Close' buttons. toolbox = activity.ActivityToolbox(self) self.set_toolbox(toolbox) toolbox.show() # Creates a new button with the label "Hello World". self.button = gtk.Button("Hello World") # When the button receives the "clicked" signal, it will call the # function hello() passing it None as its argument. The hello() # function is defined above. self.button.connect("clicked", self.hello, None) # Set the button to be our canvas. The canvas is the main section of # every Sugar Window. It fills all the area below the toolbox. self.set_canvas(self.button) # The final step is to display this newly created widget. self.button.show() print "AT END OF THE CLASS" |
O arquivo acima é chamado HelloWorldActivity.py
- Crie um MANIFESTO (e.g. HelloWorldActivity.activity/MANIFEST), contendo a lista dos arquivos inclusos no pacote. (Nota: tenha certeza que não deixou linhas em branco no final do arquivo.)
Agora a estrutura do seu diretório deve parecer com esta:
HelloWorldActivity.activity/ HelloWorldActivity.activity/setup.py HelloWorldActivity.activity/activity HelloWorldActivity.activity/activity/activity.info HelloWorldActivity.activity/activity/activity-helloworld.svg HelloWorldActivity.activity/HelloWorldActivity.py HelloWorldActivity.activity/MANIFEST
Instale seu pacote para o desenvolvimento
./setup.py dev
(Isto aparece somente para criar um symlink em ~/Activities .)
Rodando
Agora se você rodar o sugar o icone da atividade deve esta visivel na tela. ( Você deve reiniciar o sugar para ele reconhecer as alterações caso você tenha acabado de instala-lo. Use ctrl-alt-erase.)
Você também pode editar o código diretamente no diretório do seu pacote. Note que a primeira vez que a atividade é iniciada o processo continua rodando, mesmo que você feche a janela, portanto você tem que matar o sugar-activity-factory para que a atividade seja relida quando você clicar novamente sobre seu icone.
Distribuição
Crie um empacotamento .xo para distribuir seu pacote. (Um arquivo .xo é essencialmente um arquivo zip construido a partir do MANIFEST com alguns metadados extra, como um arquivo JAR. Isto também possibilita algum tipo de localização e no futuro nós esperamos sermos capazes de utilizar isto também.) O nome do pacote é gerado automaticamente a partir dos valores dos campos 'name' e 'activity_version' encontrados no arquivo activity.info , separados por um (-), com a extensão .xo .
./setup.py dist
Para instalar o xo em um laptop você pode utilizar o script de instalação.
sugar-install-bundle HelloWorld-1.xo
Uma alternativa ao comando acima é de copiar direto o diretorio *.activity no direticio usr/share/activity. Em alguns casos, foi uma alternativa mais eficiente que usar sugar-install-bundle *.ro