做一个地址簿的gui。

 #Boa:Frame:AddressEntry

 import wx

 def create(parent):
return AddressEntry(parent) [wxID_ADDRESSENTRY, wxID_ADDRESSENTRYADD, wxID_ADDRESSENTRYADDRESS,
wxID_ADDRESSENTRYCLOSE, wxID_ADDRESSENTRYDELETE, wxID_ADDRESSENTRYFIRSTNAME,
wxID_ADDRESSENTRYLASTNAME, wxID_ADDRESSENTRYLISTCTRL1,
wxID_ADDRESSENTRYPANEL1, wxID_ADDRESSENTRYSAVE, wxID_ADDRESSENTRYSTADDRESS,
wxID_ADDRESSENTRYSTFIRSTNAME, wxID_ADDRESSENTRYSTLASTNAME,
] = [wx.NewId() for _init_ctrls in range(13)] class AddressEntry(wx.Frame):
def _init_coll_fgsFields_Items(self, parent):
# generated method, don't edit parent.AddWindow(self.stFirstName, 0, border=2,
flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL)
parent.AddWindow(self.firstName, 0, border=2, flag=wx.EXPAND | wx.ALL)
parent.AddWindow(self.stLastName, 0, border=2,
flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL)
parent.AddWindow(self.lastName, 0, border=2, flag=wx.EXPAND | wx.ALL)
parent.AddWindow(self.stAddress, 0, border=2,
flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL)
parent.AddWindow(self.address, 0, border=2, flag=wx.EXPAND | wx.ALL) def _init_coll_fgsButtons_Items(self, parent):
# generated method, don't edit parent.AddWindow(self.add, 0, border=2, flag=wx.ALL)
parent.AddWindow(self.delete, 0, border=2, flag=wx.ALL)
parent.AddWindow(self.save, 0, border=2, flag=wx.ALL)
parent.AddWindow(self.close, 0, border=2, flag=wx.ALL) def _init_coll_bsMain_Items(self, parent):
# generated method, don't edit parent.AddWindow(self.listCtrl1, 1, border=2, flag=wx.ALL | wx.EXPAND)
parent.AddSizer(self.fgsFields, 0, border=0, flag=wx.EXPAND)
parent.AddSizer(self.fgsButtons, 0, border=0, flag=0) def _init_coll_fgsFields_Growables(self, parent):
# generated method, don't edit parent.AddGrowableCol(1) def _init_coll_listCtrl1_Columns(self, parent):
# generated method, don't edit parent.InsertColumn(col=0, format=wx.LIST_FORMAT_LEFT,
heading=u'First Name', width=-1)
parent.InsertColumn(col=1, format=wx.LIST_FORMAT_LEFT,
heading=u'Last Name', width=-1)
parent.InsertColumn(col=2, format=wx.LIST_FORMAT_LEFT, heading=u'City',
width=-1)
parent.InsertColumn(col=3, format=wx.LIST_FORMAT_LEFT,
heading=u'Country', width=-1) def _init_sizers(self):
# generated method, don't edit
self.bsMain = wx.BoxSizer(orient=wx.VERTICAL) self.fgsFields = wx.FlexGridSizer(cols=2, hgap=0, rows=0, vgap=0) self.fgsButtons = wx.FlexGridSizer(cols=0, hgap=0, rows=1, vgap=0) self._init_coll_bsMain_Items(self.bsMain)
self._init_coll_fgsFields_Items(self.fgsFields)
self._init_coll_fgsFields_Growables(self.fgsFields)
self._init_coll_fgsButtons_Items(self.fgsButtons) self.panel1.SetSizer(self.bsMain) def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Frame.__init__(self, id=wxID_ADDRESSENTRY, name=u'AddressEntry',
parent=prnt, pos=wx.Point(623, 192), size=wx.Size(400, 506),
style=wx.DEFAULT_FRAME_STYLE, title=u'Address entry form')
self.SetClientSize(wx.Size(392, 479)) self.panel1 = wx.Panel(id=wxID_ADDRESSENTRYPANEL1, name='panel1',
parent=self, pos=wx.Point(0, 0), size=wx.Size(392, 479),
style=wx.TAB_TRAVERSAL) self.listCtrl1 = wx.ListCtrl(id=wxID_ADDRESSENTRYLISTCTRL1,
name='listCtrl1', parent=self.panel1, pos=wx.Point(2, 2),
size=wx.Size(388, 346), style=wx.LC_REPORT)
self._init_coll_listCtrl1_Columns(self.listCtrl1) self.stFirstName = wx.StaticText(id=wxID_ADDRESSENTRYSTFIRSTNAME,
label=u'First Name', name=u'stFirstName', parent=self.panel1,
pos=wx.Point(2, 356), size=wx.Size(62, 14), style=0) self.firstName = wx.TextCtrl(id=wxID_ADDRESSENTRYFIRSTNAME,
name=u'firstName', parent=self.panel1, pos=wx.Point(68, 352),
size=wx.Size(322, 22), style=0, value=u'') self.stLastName = wx.StaticText(id=wxID_ADDRESSENTRYSTLASTNAME,
label=u'Last Name', name=u'stLastName', parent=self.panel1,
pos=wx.Point(2, 382), size=wx.Size(62, 14), style=0) self.lastName = wx.TextCtrl(id=wxID_ADDRESSENTRYLASTNAME,
name=u'lastName', parent=self.panel1, pos=wx.Point(68, 378),
size=wx.Size(322, 22), style=0, value=u'') self.stAddress = wx.StaticText(id=wxID_ADDRESSENTRYSTADDRESS,
label=u'Address', name=u'stAddress', parent=self.panel1,
pos=wx.Point(2, 419), size=wx.Size(62, 14), style=0) self.address = wx.TextCtrl(id=wxID_ADDRESSENTRYADDRESS, name=u'address',
parent=self.panel1, pos=wx.Point(68, 404), size=wx.Size(322, 45),
style=wx.TE_MULTILINE, value=u'') self.add = wx.Button(id=wx.ID_ADD, label=u'', name=u'add',
parent=self.panel1, pos=wx.Point(2, 453), size=wx.Size(75, 24),
style=0) self.delete = wx.Button(id=wx.ID_DELETE, label=u'', name=u'delete',
parent=self.panel1, pos=wx.Point(81, 453), size=wx.Size(75, 24),
style=0) self.save = wx.Button(id=wx.ID_SAVE, label=u'', name=u'save',
parent=self.panel1, pos=wx.Point(160, 453), size=wx.Size(75, 24),
style=0) self.close = wx.Button(id=wx.ID_CLOSE, label=u'', name=u'close',
parent=self.panel1, pos=wx.Point(239, 453), size=wx.Size(75, 24),
style=0) self._init_sizers() def __init__(self, parent):
self._init_ctrls(parent) if __name__ == '__main__':
app = wx.PySimpleApp()
frame = create(None)
frame.Show() app.MainLoop()

运行图:

Boa练习程序2的更多相关文章

  1. wxPython + Boa 练习程序

    最近需要做点支持linux的跨平台gui,网上查到了wxPython及Boa,感觉不错,照着Boa文档做做练习. 代码: App: #!/usr/bin/env python #Boa:App:Boa ...

  2. boa cgi程序cgi_header: unable to find LFLF

    ftp必须用二进制模式上传才可以 sqlite3 arm-linux-gcc hello.c -o hello.cgi -I /cgi/include -L /cgi/lib -static -lsq ...

  3. 嵌入式web服务器BOA的移植及应用

    嵌入式web服务器子系统 一.嵌入式web服务器的控制流程 如下图所示,嵌入式web服务器可实现通过网络远程控制嵌入式开发板,便捷实用. 控制流程:浏览器 --->>>嵌入式开发板 ...

  4. 嵌入式Linux的web视频服务器的构建

    http://blog.sina.com.cn/s/blog_53d02d550102v8bu.html随着嵌入式处理器和开源Linux 的广泛应用,各种视频服务在嵌入式系统中逐渐发展起来. 1.引言 ...

  5. arm linux上的第一个应用程序 BOA移植

    1. 首先, linux在开发板上能跑起来了. 包括网络驱动也有了, ifconfig之后, 能看到在rcS里面设置的IP, 也能ping通windows主机了, 当然, 也要window关掉防火墙才 ...

  6. wxPython+Boa Constructor环境配置

    配置之前先完成eclipse + Pydev的配置环境.详见http://www.cnblogs.com/dflower/archive/2010/05/13/1734522.html 1. 安装 w ...

  7. 基于boa服务器的web控制mini2440的GPIO口

    win7 系统  虚拟机:ubuntu12.04 开发板:mini2440 上一篇已经详细的讲解了如何配置boa服务器,在这里我们就要利用boa服务器带来的便利,利用web控制开发板上的GIPO口,这 ...

  8. 基于mini2440的boa服务器移植

    win7 系统  开发板:mini2440 虚拟机:ubuntu12.04 准备工作:确保主机与开发板之间能够正常通信,即能够ping通,具体的操作课参考我上一篇随笔. 1.首先从 http://ww ...

  9. boa配置文件详解

    Web服务器boa配置文件参数说明 boa的配置文件是/etc/boa/boa.conf.Port:boa服务器监听的端口,默认的端口是80.如果端口小于1024,则必须是  root用户启动服务器. ...

随机推荐

  1. GET和POST的主要区别

    1.get是从服务器上获取数据,post是向服务器传送数据 2.在客户端上,get通过url提交数据,数据在url上可以看到,post方式,数据放置在HTMLHEADER内提交 3.对于get方式,服 ...

  2. C# PageLayoutControl的基本操作

    来自:http://www.cnblogs.com/shenchao/p/3594394.html using System; using System.Collections.Generic; us ...

  3. Flips测试类(page43)

    测试用例:所用java类: StdOut,StdIn , Counter, StdRandom, public class Flips { public static void main(String ...

  4. GDB使用

    1.display val 设置显示格式 2.i b显示所有断点

  5. javaShop的一些总结

    主要参考 pdf 找到对应的文件吧,具体怎么制作一个挂件 还没有理解里面的思路,就没有研究了,改一个商城项目遇到了,也只有慢慢解决 加油! CSDN下载地址:http://download.csdn. ...

  6. 转:C# 获取磁盘及CPU的序列号

    原文地址:http://www.cnblogs.com/stray521/archive/2010/08/06/1793647.html //获取磁盘序列号 try { System.Manageme ...

  7. POJ1064

    #include <iostream> #include <iomanip> #include <cmath> using namespace std; int N ...

  8. Part 1 What is SSMS?

    note that,SSMS is a client tool and not the server by itself,it is a developer machines connects to ...

  9. 应该始终以PreparedStatement代替Statement

    在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement.也就是说,在任何时候都不要使用Statement 一.代码的可读性和可维护性.虽然 ...

  10. 在iOS中,实现点击搜索结果隐藏搜索结果的方法。

    不知道有没有别的什么的好的方法,最近在实现一个需求(点击搜索,然后输入搜索内容,显示搜索出来的结果,然后点击搜索结果,在当前页面显示所点击的结果的详细的信息).遇到的问题是,点击搜索结果的时候,搜索的 ...