2009/04/08

Pythonでテキストベースのインターフェイスを作成する

今日、よくLinuxのテキストモードインストール時に使用するインターフェイスの自作しているのを見て自分でもやりたくなってきたのでちょっと調べてみました。
何に使うかと言われると…ちょっと?ですが。

よく見るテキストモードでのインストールにはnewtというライブラリで実現できているのですが、そのnewtをPythonから使えるようにしたのがSnackというライブラリです。
setupコマンドでも利用されている、アレです。

CentOSでは何もインストールせずともSnackが含まれていたのですが、ubuntu(MIE)には含まれていなかったのでインストールしました。
ちなみにパッケージ名はpython-newtです。

使い方は下記のサイトにまとまっているのですが、全部理解するには少し時間がかかりそうです。
http://www.wanware.com/tsgdocs/snack.html

ひとまず、0.1秒に1%増えるプログレスバーだけ作ってみました。

#!/usr/bin/env python

import snack
import time

screen = snack.SnackScreen()

g = snack.GridForm(screen, 'TEST', 1, 1)

scale = snack.Scale(50, 100)
scale.set(0)
g.add(scale, 0, 0)

g.draw()

count = 0
while 1:
count = count + 1
scale.set(count)
g.draw()
screen.refresh()
time.sleep(0.1)
if count == 100:
break

screen.finish()


まだGrid、Formあたりの概念が理解しきれていないので引き続きドキュメントを読んでみます。
英語が苦手だとこんなところで障害になるんですよね…orz

あと、意外とGoogle Code Searchが参考になりました。
lang:python "import snack"とかで調べると使われてるコードがたくさん出てきて参考になります。

0 件のコメント: