右から左へ文字が流れる電光掲示板を作る(続き)
9月24日に通りすがりの人に教えていただいたように、wxTimerを使って作りなおす。
次のようにしたら動いた。
# encoding: utf-8 # --------------------------------------------------------------------------- # messageb2.py (2008/10/06) # --------------------------------------------------------------------------- import wx class MyApp(wx.App): def __init__(self): wx.App.__init__(self) self.wlength = 350 self.hlength = 80 self.frm = wx.Frame(None, -1, "Message Board", size=(self.wlength, self.hlength)) self.pnl = wx.Panel(self.frm, -1) self.frm.Show() self.mssg = open('jmessage.txt', 'r').readlines() #メッセージの読み込み self.n = 0 self.l = self.wlength self.tid = wx.NewId() self.t = wx.Timer(self.frm, self.tid) self.Bind(wx.EVT_TIMER, self.OnTimer, id=self.tid) self.t.Start(30) # 30msecごとにOnTimerの処理を行う def OnTimer(self, event): self.l -= 1 self.pnl.DestroyChildren() self.txt = wx.StaticText(self.pnl, -1, self.mssg[self.n], pos=(self.l, 10)) if self.l <= -self.wlength: # 文字列が流れ切ったとみなす self.l = self.wlength self.n += 1 if self.n +1 > len(self.mssg): # ファイルの末尾に到達 self.t.Stop() app = MyApp() app.MainLoop()
読み込む文字列は、ファイルjmessage.txtに書いておく。次のものでテストした。
Python は Guido van Rossum 氏による、フリーなオブジェクト指向プログラミング言語です。 Python は Red Hat 以外でもいろいろなアプリケーションの開発に使用されています。 Python の開発は、1990 年ごろから開始されています。
次に、読み込む文字列をどっかネット上から取ってくる仕組みにしたい。