该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @time 2019-7-24
__author__ = 'Ruifeng.Yang'
import wx
from datetime import datetime
class MainWindow(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="工期计算器", pos=(512,225),
size=(300,335), style=wx.DEFAULT_FRAME_STYLE^wx.RESIZE_BORDER^wx.MAXIMIZE_BOX)
self.panel = wx.Panel(self, wx.ID_ANY)
title = wx.StaticText(self.panel, wx.ID_ANY, '工期计算')
labelOne = wx.StaticText(self.panel, wx.ID_ANY, "进场日期: ")
inputTxtOne = wx.TextCtrl(self.panel, wx.ID_ANY, "1900-01-01")
labelTwo = wx.StaticText(self.panel, wx.ID_ANY, "完工日期: ")
inputTxtTwo = wx.TextCtrl(self.panel, wx.ID_ANY, "2020-01-01")
self.Bind(wx.EVT_TEXT, self.EvtOne, inputTxtOne)
self.Bind(wx.EVT_TEXT, self.EvtOne, inputTxtTwo)
showMe = wx.TextCtrl(self.panel, wx.ID_ANY, size=(500,50),
style=wx.TE_MULTILINE | wx.TE_READONLY)
self.Bind(wx.EVT_TEXT, self.EvtText, showMe)
calBtn = wx.Button(self.panel, wx.ID_ANY, '计算')
clBtn = wx.Button(self.panel, wx.ID_ANY, '清除')
self.Bind(wx.EVT_BUTTON, self.OnCal, calBtn)
self.Bind(wx.EVT_BUTTON, self.OnCl, clBtn)
info = wx.StaticText(self.panel, wx.ID_ANY, 'QQ:444849151')
topSizer = wx.BoxSizer(wx.VERTICAL)
titleSizer = wx.BoxSizer(wx.HORIZONTAL)
inputOneSizer = wx.BoxSizer(wx.HORIZONTAL)
inputTwoSizer = wx.BoxSizer(wx.HORIZONTAL)
ctrlSizer = wx.BoxSizer(wx.HORIZONTAL)
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
infoSizer = wx.BoxSizer(wx.HORIZONTAL)
titleSizer.Add(title, 0, wx.ALL, 5)
inputOneSizer.Add(labelOne, 0, wx.ALL, 5)
inputOneSizer.Add(inputTxtOne, 1, wx.ALL|wx.EXPAND, 5)
inputTwoSizer.Add(labelTwo, 0, wx.ALL, 5)
inputTwoSizer.Add(inputTxtTwo, 1, wx.ALL|wx.EXPAND, 5)
ctrlSizer.Add(showMe, 1, wx.ALL|wx.EXPAND, 5)
btnSizer.Add(calBtn, 0, wx.ALL, 5)
btnSizer.Add(clBtn, 0, wx.ALL, 5)
infoSizer.Add(info, 0, wx.ALL, 5)
topSizer.Add(titleSizer, 0, wx.CENTER)
topSizer.Add(wx.StaticLine(self.panel,), 0, wx.ALL|wx.EXPAND, 5)
topSizer.Add(inputOneSizer, 0, wx.ALL|wx.EXPAND, 5)
topSizer.Add(inputTwoSizer, 0, wx.ALL|wx.EXPAND, 5)
topSizer.Add(ctrlSizer, 0, wx.ALL|wx.EXPAND, 5)
topSizer.Add(btnSizer, 0, wx.ALL|wx.CENTER, 5)
topSizer.Add(wx.StaticLine(self.panel), 0, wx.ALL|wx.EXPAND, 5)
topSizer.Add(infoSizer, 0, wx.ALL|wx.EXPAND, 5)
self.panel.SetSizerAndFit(topSizer) #Layout sizers
def EvtOne(self, e):
e1 = e.GetString()
return e1
def EvtTwo(self, e):
e2 = e.GetString()
return e2
def OnCal(self, e):
aday = datetime.strptime(self.EvtOne(e), '%Y-%m-%d')
bday = datetime.strptime(self.EvtTwo(e), '%Y-%m-%d')
cday = bday - aday
return cday
def EvtText(self, e):
self.showMe.SetValue(self.OnCal(e))
def OnCl(self, e):
self.inputTxtOne.SetValue = ''
self.inputTxtTwo.SetValue = ''
app = wx.App(None)
frame = MainWindow().Show()
app.MainLoop()