金曜日, 3月 27, 2009

癒し系ソフト2

ライブラリリファレンスを見ていたら、標準ライブラリだけでもプログレスバーを作れることに気付いたので、作ってみた。
Tkinterの拡張であるTixを使えばよいらしい。

Python3.0とPython2.6で動作を確認済。
try:
from tkinter import DISABLED
from tkinter import Frame
from tkinter import Button
from tkinter import tix
except ImportError:
from Tkinter import DISABLED
from Tkinter import Frame
from Tkinter import Button
import Tix as tix

class Window(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self._p = 0
self._stopFlg = False

self.pack()
self.createWidgets()
self.progress()

def createWidgets(self):
self.stopButton = Button(text='now progress', command=self.stopToggle)
self.stopButton.pack({'side': 'bottom'})

self.meter = tix.Meter(value=self._p)
self.meter.pack({'side': 'bottom'})

def stopToggle(self):
self._stopFlg = not self._stopFlg
if self._stopFlg:
self.stopButton.configure(text='now pause')
else:
self.stopButton.configure(text='now progress')

self.progress()

def progress(self):
if self._p < 1:
if not self._stopFlg:
self._p = self._p + 0.001
self.meter['value'] = self._p
self.after(10, self.progress)
else:
self._p = 1
self.stopButton.configure(text='finished', state=DISABLED)

if __name__ == '__main__':
root = tix.Tk()
app = Window(master = root)
app.mainloop()


Tkinterの使い方は紫藤のページさんの記事を参考にしました。

0 件のコメント: