1 Отредактировано mosfet (15-01-2009 21:19:27)

Тема: Конвертор единиц (units frontend)

Поскольку образовалась такая толпа желающих изучать программирование для таблетки (см. http://n8xx.com/subject-2477-rekomendov … kov.html), предлагаю совместно начать полезное дело - разработку программы конвертирования единиц измерения на основе небезызвестных units. Для простоты на питоне.

Для тех, кто не в теме: http://en.wikipedia.org/wiki/GNU_Units

Что должно получиться:
[ul]
[li]палец-френдли интерфейс,[/li]
[li]возможность выбирать из 2400 единиц нужные,[/li]
[li]история вычислений[/li]
[li]и, наконец, киллер-фича - перевод валют с синхронизацией со всякими ММВБ ЦБ и т.д.[/li]
[/ul]

Что уже есть:

http://old.n8xx.com/uploads.php?file=converter-0.0.0.py

http://n8xx.com/uploads/822_converter1.png

http://n8xx.com/uploads/822_converter2.png

Пока что оно имеет 4 заранее заданных единицы, позволяет вводить циферки (и даже чиселки (даже дробные)) и худо-бедно вызывает команду units и выводит результат.

Что нужно:
[ul]
[li]распарсить units.dat или units --check-verbose в список доступных единиц,[/li]
[li]позволить выбирать из них нужные в список пользовательских,[/li]
[li]сортировать их там и удалять,[/li]
[li]хистори[/li]
[/ul]

Что мне уже не нравится:
[ul][li]из-за кнопки "выход" 3-й столбец шире остальных,[/li][/ul]

f1, f2 = os.popen2(path)
result = f2.readline().split()

как сделать проще?

Возможно, в последствии всё измениться, например кнопка "выход"; или выбор единиц уйдет в отдельное окно.

Собственно GNU units:
http://ftp.gnu.org/gnu/units/units-1.87.tar.gz

./configure
make
make install

в Scratchbox

N800 N900

2

Re: Конвертор единиц (units frontend)

Если разбить по задачам:

1.
Самое простое - разбиение запроса и результата на разряды - триады (не путать с гонконгской мафией).
Как в вендузятном кулькуляторе (Вид -> Группировка по разрядам)
Если с результатом просто - его нужно разбить, а уж потом вывести на экран, то с запросом сложнее - туда цифры добавляются по одной, причем после точки разделителей быть не должно.

2.
Получение списка единиц в список, а в идеале в словарь тип_единицы(расстояние, объем ..) : единица
Это можно сделать разбором вывода `units --check-verbose` или парсингом units.dat (в идеале).

3.
Освоение gtk.TreeView с тем, чтобы добавлять, удалять и сортировать в нем значения.

4.
Синхронизация с валютами - можно посмотреть как сделано в maemo-periodiс:
https://garage.maemo.org/frs/download.p … 1-2.tar.gz

dbus-send --print-reply --dest=com.nokia.osso_browser /com/nokia/osso_browser/service com.nokia.osso_browser.load_url string:
os.system(..
N800 N900