日曜日, 3月 08, 2009

癒し系ソフト

最近ずっとPerlに触っていて、ちょっと疲れたのでPythonで息抜き。


プログレスバーがだんだん伸びていくのを見ると、とても落ち着くので、そのためだけのアプリを作ってみました。
実行イメージはこんなかんじ。



一時停止も出来る。



面倒なので画面はGladeで適当に。プログレスバーの終了処理は適当過ぎるかもしれないけど、ネタでしかないので気にしない。
一応3分で完了するはずだけど、あまり厳密ではない。そもそも、癒されているときにそんなことを考えないので、実用(?)上問題ない。


基本的な機能は20分ほどで完成。プログレスバーの使い方を調べるのにちょっと時間がかかった。で、ダラダラしたり、Perlについて調べたりする合間に、適当にやっているうちに出来あがり。やはり慣れている言語だと速い。調べたこともライブラリの使い方であって、Pythonそのものについて調べるなんてことはまったく無し。
Perlでもこれくらいさくさく書けるようになるだろうか。


以下、コード。ui.gladeは適当に。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import gtk
import gtk.glade
import gobject


class Progress(object):

def __init__(self):
self.gladefile = 'ui.glade'
self.wTree = gtk.glade.XML(self.gladefile)

self.window = self.wTree.get_widget('window')
self.progress = self.wTree.get_widget('progressbar1')
self.button = self.wTree.get_widget('togglebutton1')
self.flag = True

self.window.connect('destroy', gtk.main_quit)
self.button.connect('toggled', self.on_toggled)

self.timer = gobject.timeout_add(100, self.update_progressbar)

def show_all(self):
self.window.show_all()

def update_progressbar(self):
if self.flag:
current_fraction = self.progress.get_fraction()
if current_fraction < 1:
self.progress.set_fraction(current_fraction + 0.000556)
return True

def on_toggled(self, *args):
self.flag = not self.flag
if self.flag:
self.button.set_label('ぷろぐれすちゅう')
else:
self.button.set_label('ていしちゅう')


if __name__ == '__main__':
prog = Progress()
prog.show_all()
gtk.main()


99%でなかなか終わらないとか、60%ぐらいで0%に戻る機能も考えたけど、癒し効果が無くなりそうなので、やめました。

0 件のコメント: