Tichy/ru

From Openmoko

Jump to: navigation, search


Главный экран Tichy
Приложение для рисования
Выбор и просмотр стилей
Приложение Tichy Freedesktop
Клавиатура Tichy

Contents

About

Tichy является менеджером аплетов для встраиваемых устройств и написан на языке программирования Python.

Цель проекта - облегчить разработку на языке Питон широкого спектра приложений для Openmoko.

Tichy предоставляет для разработчиков следующие возможности:

  • Виджеты для графического интерфейса пользователя
  • Систему сервисов, их регистрацию и поиск (например приложение, желающее отправить сообщение, имеет возможность запросить другое приложение, реализующее нужный функционал)
  • Систему задач (tasklets). Она позволит писать процессы, ожидающие обратного вызова и ведущие себя как потоки (threads)
  • Абстракцию Элемента и его Внешнего вида
  • Систему подключаемых модулей (плагинов) для удобного создания новой функциональности и добавления аплетов в систему

Как писать аплеты / плагины для Tichy?

К сожалению, документации на этот счёт пока не существует.

Однако создать новый компонент совсем несложно. Если вы хотите написать новый аплет, просто создайте новую директорию в tichy/test/plugins/apps/ и посмотрите, как устроены другие входящие в поставку программы плагины. Простое приложение выглядит примерно так:

import tichy
import tichy.gui as gui
import tichy.item as item
from tichy.application import Application

class MyApp(Application):
name = "Моё приложение"
icon = "icon.png"   # Картинка должна быть в директории нового приложения

def run(self, parent):
w = gui.Window(parent, modal = True)   # Мы работаем в новом модальном окне
# Создаём новый фрейм с кнопкой "Назад" наверху
frame = gui.ApplicationFrame(w, self, back_button=True)

# В этом контейнере будут храниться виджеты
box = gui.Box(frame, axis=1)

# Создаём текстовой элемент
text = item.Text("Кликните тут для редактирования", editable = True)
# Показываем этот элемент на экране
text.view(box)

# Добавляем кнопку
button = gui.Button(box)
gui.Label(button, "Нажмите тут")

def on_click(b):
# "yield" работает так: "блокировка до возвращения управления из задачи"
yield gui.Message(w, "Вы нажали на кнопку")
# Связывание события и вызываемой функции
button.connect("clicked", on_click)

yield Wait(frame, "back")     # Ждём пока не будет нажата кнопка "Назад"
w.close()                     # Не забываем закрывать за собой окна

Авторы

  • Guillaume "Charlie" Chereau, основной разработчик
  • Michael "Goodwill"

Исходные коды

Исходники проекта доступны из репозитария SVN по имени project.openmoko:

svn checkout svn://svn.projects.openmoko.org/svnroot/tichy

Запуск на десктопе

Благодаря упомянутой выше системе сервисов, дающей возможность предоставлять клиентам на выбор несколько реализующих сходный функционал приложений, Tichy можно запускать не только на телефонах Openmoko, но и на настольных компьютерах: когда Tichy работает на десктопе, он имитирует финкционал телефона, а когда в реальном Neo - использует доступное там окружение.

Чтобы запустить Tichy на настольном компьютере, необходимо установить пакет python-pygames:

sudo apt-get install python-pygame

Потом просто загрузите исходники, зайдите в директорию test и запустите:

./tichy

Запуск на Neo

Нужно будет скомпилировать несколько файлов; читайте README из комплекта поставки Tichy с соответствующими инструкциями.

Зависимости

Для работы требуется python версии 2.5 и некоторые другие библиотеки:

  • python-pygame
  • python-dbus
  • python-yaml
  • python-gst
  • python-gobject

ipkg-пакет Tichy

В лентах Openmoko "testing" и "unstable" есть пакет Tichy. В настоящее время текущая версия проекта неработоспособна из-за ошибки в пакете python-pygame.

Personal tools