做一个地址簿的gui。
1 #Boa:Frame:AddressEntry 2 3 import wx 4 5 def create(parent): 6 return AddressEntry(parent) 7 8 [wxID_ADDRESSENTRY, wxID_ADDRESSENTRYADD, wxID_ADDRESSENTRYADDRESS, 9 wxID_ADDRESSENTRYCLOSE, wxID_ADDRESSENTRYDELETE, wxID_ADDRESSENTRYFIRSTNAME, 10 wxID_ADDRESSENTRYLASTNAME, wxID_ADDRESSENTRYLISTCTRL1, 11 wxID_ADDRESSENTRYPANEL1, wxID_ADDRESSENTRYSAVE, wxID_ADDRESSENTRYSTADDRESS, 12 wxID_ADDRESSENTRYSTFIRSTNAME, wxID_ADDRESSENTRYSTLASTNAME, 13 ] = [wx.NewId() for _init_ctrls in range(13)] 14 15 class AddressEntry(wx.Frame): 16 def _init_coll_fgsFields_Items(self, parent): 17 # generated method, don't edit 18 19 parent.AddWindow(self.stFirstName, 0, border=2, 20 flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) 21 parent.AddWindow(self.firstName, 0, border=2, flag=wx.EXPAND | wx.ALL) 22 parent.AddWindow(self.stLastName, 0, border=2, 23 flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL) 24 parent.AddWindow(self.lastName, 0, border=2, flag=wx.EXPAND | wx.ALL) 25 parent.AddWindow(self.stAddress, 0, border=2, 26 flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL) 27 parent.AddWindow(self.address, 0, border=2, flag=wx.EXPAND | wx.ALL) 28 29 def _init_coll_fgsButtons_Items(self, parent): 30 # generated method, don't edit 31 32 parent.AddWindow(self.add, 0, border=2, flag=wx.ALL) 33 parent.AddWindow(self.delete, 0, border=2, flag=wx.ALL) 34 parent.AddWindow(self.save, 0, border=2, flag=wx.ALL) 35 parent.AddWindow(self.close, 0, border=2, flag=wx.ALL) 36 37 def _init_coll_bsMain_Items(self, parent): 38 # generated method, don't edit 39 40 parent.AddWindow(self.listCtrl1, 1, border=2, flag=wx.ALL | wx.EXPAND) 41 parent.AddSizer(self.fgsFields, 0, border=0, flag=wx.EXPAND) 42 parent.AddSizer(self.fgsButtons, 0, border=0, flag=0) 43 44 def _init_coll_fgsFields_Growables(self, parent): 45 # generated method, don't edit 46 47 parent.AddGrowableCol(1) 48 49 def _init_coll_listCtrl1_Columns(self, parent): 50 # generated method, don't edit 51 52 parent.InsertColumn(col=0, format=wx.LIST_FORMAT_LEFT, 53 heading=u'First Name', width=-1) 54 parent.InsertColumn(col=1, format=wx.LIST_FORMAT_LEFT, 55 heading=u'Last Name', width=-1) 56 parent.InsertColumn(col=2, format=wx.LIST_FORMAT_LEFT, heading=u'City', 57 width=-1) 58 parent.InsertColumn(col=3, format=wx.LIST_FORMAT_LEFT, 59 heading=u'Country', width=-1) 60 61 def _init_sizers(self): 62 # generated method, don't edit 63 self.bsMain = wx.BoxSizer(orient=wx.VERTICAL) 64 65 self.fgsFields = wx.FlexGridSizer(cols=2, hgap=0, rows=0, vgap=0) 66 67 self.fgsButtons = wx.FlexGridSizer(cols=0, hgap=0, rows=1, vgap=0) 68 69 self._init_coll_bsMain_Items(self.bsMain) 70 self._init_coll_fgsFields_Items(self.fgsFields) 71 self._init_coll_fgsFields_Growables(self.fgsFields) 72 self._init_coll_fgsButtons_Items(self.fgsButtons) 73 74 self.panel1.SetSizer(self.bsMain) 75 76 def _init_ctrls(self, prnt): 77 # generated method, don't edit 78 wx.Frame.__init__(self, id=wxID_ADDRESSENTRY, name=u'AddressEntry', 79 parent=prnt, pos=wx.Point(623, 192), size=wx.Size(400, 506), 80 style=wx.DEFAULT_FRAME_STYLE, title=u'Address entry form') 81 self.SetClientSize(wx.Size(392, 479)) 82 83 self.panel1 = wx.Panel(id=wxID_ADDRESSENTRYPANEL1, name='panel1', 84 parent=self, pos=wx.Point(0, 0), size=wx.Size(392, 479), 85 style=wx.TAB_TRAVERSAL) 86 87 self.listCtrl1 = wx.ListCtrl(id=wxID_ADDRESSENTRYLISTCTRL1, 88 name='listCtrl1', parent=self.panel1, pos=wx.Point(2, 2), 89 size=wx.Size(388, 346), style=wx.LC_REPORT) 90 self._init_coll_listCtrl1_Columns(self.listCtrl1) 91 92 self.stFirstName = wx.StaticText(id=wxID_ADDRESSENTRYSTFIRSTNAME, 93 label=u'First Name', name=u'stFirstName', parent=self.panel1, 94 pos=wx.Point(2, 356), size=wx.Size(62, 14), style=0) 95 96 self.firstName = wx.TextCtrl(id=wxID_ADDRESSENTRYFIRSTNAME, 97 name=u'firstName', parent=self.panel1, pos=wx.Point(68, 352), 98 size=wx.Size(322, 22), style=0, value=u'') 99 100 self.stLastName = wx.StaticText(id=wxID_ADDRESSENTRYSTLASTNAME, 101 label=u'Last Name', name=u'stLastName', parent=self.panel1, 102 pos=wx.Point(2, 382), size=wx.Size(62, 14), style=0) 103 104 self.lastName = wx.TextCtrl(id=wxID_ADDRESSENTRYLASTNAME, 105 name=u'lastName', parent=self.panel1, pos=wx.Point(68, 378), 106 size=wx.Size(322, 22), style=0, value=u'') 107 108 self.stAddress = wx.StaticText(id=wxID_ADDRESSENTRYSTADDRESS, 109 label=u'Address', name=u'stAddress', parent=self.panel1, 110 pos=wx.Point(2, 419), size=wx.Size(62, 14), style=0) 111 112 self.address = wx.TextCtrl(id=wxID_ADDRESSENTRYADDRESS, name=u'address', 113 parent=self.panel1, pos=wx.Point(68, 404), size=wx.Size(322, 45), 114 style=wx.TE_MULTILINE, value=u'') 115 116 self.add = wx.Button(id=wx.ID_ADD, label=u'', name=u'add', 117 parent=self.panel1, pos=wx.Point(2, 453), size=wx.Size(75, 24), 118 style=0) 119 120 self.delete = wx.Button(id=wx.ID_DELETE, label=u'', name=u'delete', 121 parent=self.panel1, pos=wx.Point(81, 453), size=wx.Size(75, 24), 122 style=0) 123 124 self.save = wx.Button(id=wx.ID_SAVE, label=u'', name=u'save', 125 parent=self.panel1, pos=wx.Point(160, 453), size=wx.Size(75, 24), 126 style=0) 127 128 self.close = wx.Button(id=wx.ID_CLOSE, label=u'', name=u'close', 129 parent=self.panel1, pos=wx.Point(239, 453), size=wx.Size(75, 24), 130 style=0) 131 132 self._init_sizers() 133 134 def __init__(self, parent): 135 self._init_ctrls(parent) 136 137 138 if __name__ == '__main__': 139 app = wx.PySimpleApp() 140 frame = create(None) 141 frame.Show() 142 143 app.MainLoop()
运行图: