Skip to content

Instantly share code, notes, and snippets.

@Yamabiko
Created July 20, 2015 13:39
Show Gist options
  • Save Yamabiko/277f153cb5d14bb454b5 to your computer and use it in GitHub Desktop.
Save Yamabiko/277f153cb5d14bb454b5 to your computer and use it in GitHub Desktop.
bad_code.py の修正版。
#!/bin/env python
# -*- coding: shift_jis -*-
#
# Written by yamabiko
# 2015/July/03
import wx
PROGRAM_TITLE = "Oscillo view ver. 0.1"
PROGRAM_WRITER = "written by yamabiko"
PROGRAM_DATE = "2015/July/3"
class OscilloViewer(object):
def __init__(self):
# init wx window
self.wx = wx.App(False)
self.frame = wx.Frame(None, wx.ID_ANY, PROGRAM_TITLE)
self.timer = wx.Timer(self.frame)
self.checkValButton = wx.Button(self.frame, wx.ID_ANY, "Check value")
# events
self.frame.Bind(wx.EVT_BUTTON, self.start_checkval, self.checkValButton)
self.frame.Bind(wx.EVT_TIMER, self.OnTimer)
# sizer
self.hsizer = wx.BoxSizer(wx.HORIZONTAL)
self.hsizer.Add(self.checkValButton, 1, wx.EXPAND)
self.frame.SetSizer(self.hsizer)
self.frame.SetAutoLayout(1)
# show window
self.frame.Show(True)
# counter
self.counter = 0
def check_value(self):
if self.counter % 10 == 0:
self.timer.Stop()
dlg = wx.MessageDialog(self.frame,
"カウンタの値が10の倍数になりました。プログラムを終了しますか?",
"10の倍数",
wx.YES_NO | wx.ICON_QUESTION)
if dlg.ShowModal() != wx.ID_YES:
self.timer.Start(50)
dlg.Destroy()
def start_window(self):
self.wx.MainLoop()
def OnTimer(self, e):
self.counter += 1
self.check_value()
def start_checkval(self, e):
self.timer.Start(50)
if __name__ == '__main__':
osv = OscilloViewer()
osv.start_window()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment