mainframe.py
来自「需要工具: 1. Python 2.3 以上 2. BOA Construc」· Python 代码 · 共 203 行
PY
203 行
#Boa:Frame:MainFrame
"""
Python GUI IOControl
by Jia-Yang Chen (JAYA)
email: jia.yang.chen@gmail.com
school: TTU
date: 2006/11/05
"""
import wx
import wx.lib.buttons
import sys
import codecs
import string
def create(parent):
return MainFrame(parent)
[wxID_MAINFRAME, wxID_MAINFRAMEBOYRADIO, wxID_MAINFRAMEEXITBUTTON,
wxID_MAINFRAMEGIRLRADIO, wxID_MAINFRAMELOADDATA, wxID_MAINFRAMEMARRYRADIO,
wxID_MAINFRAMENUMARRYRADIO, wxID_MAINFRAMEPANEL1, wxID_MAINFRAMESAVEDATA,
wxID_MAINFRAMESCHOOL1, wxID_MAINFRAMESCHOOL2, wxID_MAINFRAMESCHOOL3,
wxID_MAINFRAMESCHOOL4, wxID_MAINFRAMESTATICTEXT1, wxID_MAINFRAMESTATICTEXT2,
wxID_MAINFRAMESTATICTEXT3, wxID_MAINFRAMETEXTBOX,
] = [wx.NewId() for _init_ctrls in range(17)]
class MainFrame(wx.Frame):
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Frame.__init__(self, id=wxID_MAINFRAME, name=u'MainFrame',
parent=prnt, pos=wx.Point(349, 221), size=wx.Size(415, 326),
style=wx.CAPTION | wx.SUNKEN_BORDER,
title=u'\u8cc7\u6599\u8a2d\u5b9a')
self.SetClientSize(wx.Size(407, 299))
self.panel1 = wx.Panel(id=wxID_MAINFRAMEPANEL1, name='panel1',
parent=self, pos=wx.Point(0, 0), size=wx.Size(407, 299),
style=wx.TAB_TRAVERSAL)
self.ExitButton = wx.lib.buttons.GenButton(ID=wxID_MAINFRAMEEXITBUTTON,
label=u'\u96e2\u958b', name=u'ExitButton', parent=self.panel1,
pos=wx.Point(320, 256), size=wx.Size(79, 26), style=0)
self.ExitButton.Bind(wx.EVT_BUTTON, self.OnExitButtonButton,
id=wxID_MAINFRAMEEXITBUTTON)
self.textBox = wx.TextCtrl(id=wxID_MAINFRAMETEXTBOX, name=u'textBox',
parent=self.panel1, pos=wx.Point(8, 8), size=wx.Size(304, 112),
style=wx.TE_RICH | wx.TE_MULTILINE, value=u'')
self.textBox.SetToolTipString(u'')
self.textBox.SetMaxLength(2048)
self.textBox.SetExtraStyle(0)
self.textBox.SetAutoLayout(True)
self.textBox.SetThemeEnabled(True)
self.loadData = wx.lib.buttons.GenButton(ID=wxID_MAINFRAMELOADDATA,
label=u'\u8f09\u5165\u8cc7\u6599', name=u'loadData',
parent=self.panel1, pos=wx.Point(320, 8), size=wx.Size(79, 26),
style=0)
self.loadData.Bind(wx.EVT_BUTTON, self.OnLoadDataButton,
id=wxID_MAINFRAMELOADDATA)
self.saveData = wx.lib.buttons.GenButton(ID=wxID_MAINFRAMESAVEDATA,
label=u'\u5b58\u653e\u8cc7\u6599', name=u'saveData',
parent=self.panel1, pos=wx.Point(320, 48), size=wx.Size(79, 26),
style=0)
self.saveData.Bind(wx.EVT_BUTTON, self.OnSaveDataButton,
id=wxID_MAINFRAMESAVEDATA)
self.boyRadio = wx.RadioButton(id=wxID_MAINFRAMEBOYRADIO,
label=u'\u7537', name=u'boyRadio', parent=self.panel1,
pos=wx.Point(88, 136), size=wx.Size(48, 14), style=wx.RB_GROUP)
self.boyRadio.SetValue(True)
self.boyRadio.SetToolTipString(u'')
self.staticText1 = wx.StaticText(id=wxID_MAINFRAMESTATICTEXT1,
label=u'\u6027\u5225', name='staticText1', parent=self.panel1,
pos=wx.Point(16, 136), size=wx.Size(24, 14), style=0)
self.girlRadio = wx.RadioButton(id=wxID_MAINFRAMEGIRLRADIO,
label=u'\u5973', name=u'girlRadio', parent=self.panel1,
pos=wx.Point(152, 136), size=wx.Size(48, 14), style=0)
self.girlRadio.SetValue(False)
self.girlRadio.SetToolTipString(u'')
self.staticText2 = wx.StaticText(id=wxID_MAINFRAMESTATICTEXT2,
label=u'\u5a5a\u59fb\u72c0\u6cc1', name='staticText2',
parent=self.panel1, pos=wx.Point(16, 168), size=wx.Size(48, 14),
style=0)
self.numarryRadio = wx.RadioButton(id=wxID_MAINFRAMENUMARRYRADIO,
label=u'\u672a\u5a5a', name=u'numarryRadio', parent=self.panel1,
pos=wx.Point(88, 168), size=wx.Size(56, 16), style=wx.RB_GROUP)
self.numarryRadio.SetValue(True)
self.marryRadio = wx.RadioButton(id=wxID_MAINFRAMEMARRYRADIO,
label=u'\u5df2\u5a5a', name=u'marryRadio', parent=self.panel1,
pos=wx.Point(152, 168), size=wx.Size(56, 14), style=0)
self.marryRadio.SetValue(False)
self.staticText3 = wx.StaticText(id=wxID_MAINFRAMESTATICTEXT3,
label=u'\u5b78\u6b77', name='staticText3', parent=self.panel1,
pos=wx.Point(16, 200), size=wx.Size(24, 14), style=0)
self.school2 = wx.CheckBox(id=wxID_MAINFRAMESCHOOL2,
label=u'\u9ad8\u4e2d', name=u'school2', parent=self.panel1,
pos=wx.Point(152, 200), size=wx.Size(48, 14), style=0)
self.school2.SetValue(False)
self.school1 = wx.CheckBox(id=wxID_MAINFRAMESCHOOL1,
label=u'\u570b\u4e2d', name=u'school1', parent=self.panel1,
pos=wx.Point(88, 200), size=wx.Size(48, 14), style=0)
self.school1.SetValue(False)
self.school3 = wx.CheckBox(id=wxID_MAINFRAMESCHOOL3,
label=u'\u5927\u5b78', name=u'school3', parent=self.panel1,
pos=wx.Point(216, 200), size=wx.Size(48, 14), style=0)
self.school3.SetValue(False)
self.school4 = wx.CheckBox(id=wxID_MAINFRAMESCHOOL4,
label=u'\u7814\u7a76\u751f', name=u'school4', parent=self.panel1,
pos=wx.Point(280, 200), size=wx.Size(56, 14), style=0)
self.school4.SetValue(False)
def __init__(self, parent):
self._init_ctrls(parent)
def OnExitButtonButton(self, event):
sys.exit()
def OnLoadDataButton(self, event):
dlg = wx.MessageDialog(self, u'\u662f\u5426\u8f09\u5165\u8a2d\u5b9a\u6a94', u'\u8a2d\u5b9a\u6a94', wx.YES_NO | wx.NO_DEFAULT | wx.ICON_INFORMATION)
ans = wx.ID_NO
try:
ans = dlg.ShowModal()
finally:
dlg.Destroy()
if ans == wx.ID_YES:
f=codecs.open('./config.txt','r', 'utf-8')
data = f.read()
f.close()
split='\n[_config_]\n'
listData = string.split(data, split)
if(len(listData) == 9):
self.textBox.SetValue(listData[0])
if(listData[1] == 'True'):
self.boyRadio.SetValue(True)
else:
self.boyRadio.SetValue(False)
if(listData[2] == 'True'):
self.girlRadio.SetValue(True)
else:
self.girlRadio.SetValue(False)
if(listData[3] == 'True'):
self.marryRadio.SetValue(True)
else:
self.marryRadio.SetValue(False)
if(listData[4] == 'True'):
self.numarryRadio.SetValue(True)
else:
self.numarryRadio.SetValue(False)
if(listData[5] == 'True'):
self.school1.SetValue(True)
else:
self.school1.SetValue(False)
if(listData[6] == 'True'):
self.school2.SetValue(True)
else:
self.school2.SetValue(False)
if(listData[7] == 'True'):
self.school3.SetValue(True)
else:
self.school3.SetValue(False)
if(listData[8] == 'True'):
self.school4.SetValue(True)
else:
self.school4.SetValue(False)
event.Skip()
def OnSaveDataButton(self, event):
dlg = wx.MessageDialog(self, u'\u662f\u5426\u5132\u5b58\u8a2d\u5b9a\u6a94', u'\u8a2d\u5b9a\u6a94', wx.YES_NO | wx.NO_DEFAULT | wx.ICON_INFORMATION)
ans = wx.ID_NO
try:
ans = dlg.ShowModal()
finally:
dlg.Destroy()
if ans == wx.ID_YES:
split='\n[_config_]\n'
data=''
data = data + self.textBox.GetValue() + split
data = data + str(self.boyRadio.GetValue()) + split
data = data + str(self.girlRadio.GetValue()) + split
data = data + str(self.marryRadio.GetValue()) + split
data = data + str(self.numarryRadio.GetValue()) + split
data = data + str(self.school1.GetValue()) + split
data = data + str(self.school2.GetValue()) + split
data = data + str(self.school3.GetValue()) + split
data = data + str(self.school4.GetValue())
f=codecs.open('./config.txt','w', 'utf-8')
f.write(data)
f.close()
event.Skip()
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?