wxpythonのwx.Timer
wxpythonのMatplotlibにラバーバンドを表示する - メグタンの何でもブログ の続き
GUIで一定周期で処理を繰り返したい時にはwx.Timerが便利
GUI上で一定周期で点滅表示とかを行いたい時にはメインスレッド(UIスレッド)で動くwx.Timerが便利
手書きで追加してもいいけれども wxFormBuilder で追加しよう。
タイマーで動かすための プログレスバーも追加
タイマーは additional の一番右に wxTimer があるので追加
プログレスバーは common の一番右に wxGage がある。
wxTimer には OnTimer イベントを追加して置く。
Generate Code で画面のコードを生成する。
このコードは修正してはいけない。
継承したクラスコードの方に、生成された OnTImer イベントをコピペして処理内容を追加する。
def m_timer1OnTimer( self, event ): self.count = self.count + 1 if self.count == 100: self.m_timer1.Stop() self.m_gauge1.SetValue(self.count)
タイマーの起動と停止の為に、ボタンクリックのイベントを記述する。
(ボタンクリックのイベント追加も上記と同じ)
ボタンを押す度にタイマーのスタート/ストップをトグルする。
def m_button1OnButtonClick( self, event ): print("button pushed") if self.m_timer1.IsRunning() == False: self.count = 0 self.m_timer1.Start(10) else: self.m_timer1.Stop()
wx.Timer の詳細は下記を参照
wx.Timer — wxPython Phoenix 4.2.0 documentation