做一个地址簿的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. 【阿里云产品公测】离线归档OAS,在也不用备份担心空间了

    作者:阿里云用户 莫须有3i 1 起步 1.1 初识OAS 啥是OAS,请看官方说明: 引用 开放归档服务(Open Archive Service,简称OAS),致力于提供低成本.高可靠的数据归档服 ...

  2. java正则表达式常用实例——借鉴思路

    转载自:http://mp.weixin.qq.com/s?__biz=MjM5OTM4NDMyMg==&mid=2650044497&idx=1&sn=dc80fa35f7e ...

  3. 使用Spring Security实现权限管理

    使用Spring Security实现权限管理 1.技术目标 了解并创建Security框架所需数据表 为项目添加Spring Security框架 掌握Security框架配置 应用Security ...

  4. Dijkstra最短路径算法

    #include <iostream> #include <vector> #include <cstring> #include <cstdio> # ...

  5. Abp Zero——前端如何新增功能模块

    为适应不同开发人员,abp rezo的UI实现了spa和mpa两套: spa--Single-page Application(单页面应用),默认"http://localhost/Acco ...

  6. ASP.NET缓存全解析7:第三方分布式缓存解决方案 Memcached和Cacheman 转自网络原文作者李天平

    Memcached — 分布式缓存系统 1.Memcached是什么? Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.Memcached通过在内 ...

  7. Process Stats:了解你的APP如何使用内存(转)

    原文地址:http://android-developers.blogspot.com/2014/01/process-stats-understanding-how-your.html?m=1 原作 ...

  8. Android之图片颜色调节

    package net.hnjdzy.imagecolor; import android.os.Bundle; import android.app.Activity; import android ...

  9. IOS显示九宫格列表

    //总列数 ; CGFloat appW = ; CGFloat appH = ; //间隙 CGFloat maginX = (self.view.frame.size.width - totalC ...

  10. php 图片调整大小 封装类【转载】

    <?php class ImageResize { private $image; private $img_des; private $image_type; private $permiss ...