年末まであと何日?を教えてくれるアプリ

サイザーの勉強をしているのであるが、奥が深いのでまだまだ使いこなせない。www.harukaze.netを見ていたのであるが、その勢いで初アプリケーションを作ってみた(アプリというほど完成度は高くないのだが)。
2つ日付を入力してボタンを押すと、日時の差を求めるものです。例えば、今日の日付と大晦日の日付を入れ、"Calculate!"ボタンを押すと145daysと表示されます(写真が実行画面)。以下、ソース(TimeFlies.py)。

""" simple application for calculating remaining days
"""
import wx
import datetime

class MyApp(wx.PySimpleApp):
    def OnInit(self):
        Frm = wx.Frame(None, -1, "Time flies.", size=(550,120))
        Frm.SetBackgroundColour("green")
        
        StTxtF = wx.StaticText(Frm, -1, "From:")
        StTxtT = wx.StaticText(Frm, -1, "To:  ")
        StTxtY1 = wx.StaticText(Frm, -1, "Year")
        StTxtM1 = wx.StaticText(Frm, -1, "Month")
        StTxtD1 = wx.StaticText(Frm, -1, "Day")
        StTxtY2 = wx.StaticText(Frm, -1, "Year")
        StTxtM2 = wx.StaticText(Frm, -1, "Month")
        StTxtD2 = wx.StaticText(Frm, -1, "Day")
        
        self.TxtCtrY1 = wx.TextCtrl(Frm, -1, "2007")
        self.TxtCtrM1 = wx.TextCtrl(Frm, -1, "01")
        self.TxtCtrD1 = wx.TextCtrl(Frm, -1, "01")
        self.TxtCtrY2 = wx.TextCtrl(Frm, -1, "2007")
        self.TxtCtrM2 = wx.TextCtrl(Frm, -1, "01")
        self.TxtCtrD2 = wx.TextCtrl(Frm, -1, "01")

        Btn1 = wx.Button(Frm, -1, "Calculate!")
        StTxt2 = wx.StaticText(Frm, -1, "===>")
        self.StTxt4 = wx.StaticText(Frm, -1, "00")
        StTxt3 = wx.StaticText(Frm, -1, " remain ...")
        
        FGSz = wx.FlexGridSizer(3,7)
        FGSz.Add(StTxtF, 0, wx.FIXED_MINSIZE)
        FGSz.Add(StTxtY1, 0, wx.FIXED_MINSIZE)
        FGSz.Add(self.TxtCtrY1, 0, wx.FIXED_MINSIZE)
        FGSz.Add(StTxtM1, 0, wx.FIXED_MINSIZE)
        FGSz.Add(self.TxtCtrM1, 0, wx.FIXED_MINSIZE)
        FGSz.Add(StTxtD1, 0, wx.FIXED_MINSIZE)
        FGSz.Add(self.TxtCtrD1, 0, wx.FIXED_MINSIZE)
        FGSz.Add(StTxtT, 1, wx.FIXED_MINSIZE)
        FGSz.Add(StTxtY2, 1, wx.FIXED_MINSIZE)
        FGSz.Add(self.TxtCtrY2, 1, wx.FIXED_MINSIZE)
        FGSz.Add(StTxtM2, 1, wx.FIXED_MINSIZE)
        FGSz.Add(self.TxtCtrM2, 1, wx.FIXED_MINSIZE)
        FGSz.Add(StTxtD2, 1, wx.FIXED_MINSIZE)
        FGSz.Add(self.TxtCtrD2, 1, wx.FIXED_MINSIZE)

        FGSz.Add(Btn1, 2, wx.FIXED_MINSIZE)
        FGSz.Add(StTxt2, 2, wx.FIXED_MINSIZE)
        FGSz.Add(self.StTxt4, 2, wx.FIXED_MINSIZE)
        FGSz.Add(StTxt3, 2, wx.FIXED_MINSIZE)
        Frm.SetSizer(FGSz)

        Btn1.Bind(wx.EVT_BUTTON, self.OnButton)
        
        Frm.Show()
        return 1

    def OnButton(self, event):
        y1 = int(self.TxtCtrY1.GetValue())
        m1 = int(self.TxtCtrM1.GetValue())
        d1 = int(self.TxtCtrD1.GetValue())
        y2 = int(self.TxtCtrY2.GetValue())
        m2 = int(self.TxtCtrM2.GetValue())
        d2 = int(self.TxtCtrD2.GetValue())
        days1 = datetime.date(y1,m1,d1)
        days2 = datetime.date(y2,m2,d2)
        print days1, days2
        self.StTxt4.SetLabel(str(days2-days1))
    
app = MyApp()
app.MainLoop()

もう少しきれいに配置できるようにするのが、とりあえずの目標。サイザーの勉強を続けることにする。見れば見るほど単純なコードではあるが、記念すべき初アプリには変わりない。