プログレスバーがだんだん伸びていくのを見ると、とても落ち着くので、そのためだけのアプリを作ってみました。
実行イメージはこんなかんじ。
一時停止も出来る。
面倒なので画面は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 件のコメント:
コメントを投稿