Boa练习程序2
做一个地址簿的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的更多相关文章
- wxPython + Boa 练习程序
最近需要做点支持linux的跨平台gui,网上查到了wxPython及Boa,感觉不错,照着Boa文档做做练习. 代码: App: #!/usr/bin/env python #Boa:App:Boa ...
- 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 ...
- 嵌入式web服务器BOA的移植及应用
嵌入式web服务器子系统 一.嵌入式web服务器的控制流程 如下图所示,嵌入式web服务器可实现通过网络远程控制嵌入式开发板,便捷实用. 控制流程:浏览器 --->>>嵌入式开发板 ...
- 嵌入式Linux的web视频服务器的构建
http://blog.sina.com.cn/s/blog_53d02d550102v8bu.html随着嵌入式处理器和开源Linux 的广泛应用,各种视频服务在嵌入式系统中逐渐发展起来. 1.引言 ...
- arm linux上的第一个应用程序 BOA移植
1. 首先, linux在开发板上能跑起来了. 包括网络驱动也有了, ifconfig之后, 能看到在rcS里面设置的IP, 也能ping通windows主机了, 当然, 也要window关掉防火墙才 ...
- wxPython+Boa Constructor环境配置
配置之前先完成eclipse + Pydev的配置环境.详见http://www.cnblogs.com/dflower/archive/2010/05/13/1734522.html 1. 安装 w ...
- 基于boa服务器的web控制mini2440的GPIO口
win7 系统 虚拟机:ubuntu12.04 开发板:mini2440 上一篇已经详细的讲解了如何配置boa服务器,在这里我们就要利用boa服务器带来的便利,利用web控制开发板上的GIPO口,这 ...
- 基于mini2440的boa服务器移植
win7 系统 开发板:mini2440 虚拟机:ubuntu12.04 准备工作:确保主机与开发板之间能够正常通信,即能够ping通,具体的操作课参考我上一篇随笔. 1.首先从 http://ww ...
- boa配置文件详解
Web服务器boa配置文件参数说明 boa的配置文件是/etc/boa/boa.conf.Port:boa服务器监听的端口,默认的端口是80.如果端口小于1024,则必须是 root用户启动服务器. ...
随机推荐
- Java学习笔记——Java工厂模式之简单工厂
package com.app; import java.util.Date; /* * 工厂模式:简单工厂.工厂方法.抽象工厂 * * */ public class Test0718_Factor ...
- nginx设置SSL反向代理
Nginx的反向代理通常用来映射内网中提供的Apache.IIS.Lighttpd服务,以实现负载均衡:同时,由于动态服务程序运行在内网,服务器的整体安全性也有所提高,那么怎样用nginx设置SSL的 ...
- linux-启动停止重启shell 简单shell示例
停止: #!/bin/bashpid=`ps -ef|grep /opt/lampp|grep -v grep|awk '{print $2}'|wc -l`b=0if [ $pid -gt $b ] ...
- page74-泛型可迭代的基础集合数据类型的API-Bag+Queue+Stack
[泛型可迭代的基础集合数据类型的API] 背包:就是一种不支持从中删除元素的集合数据类型——它的目的就是帮助用例收集元素并迭代遍历所有收集到的元素.(用例也可以检查背包是否为空, 或者获取背包中元素的 ...
- poj1330
Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24762 Accept ...
- Matlab之画图
1.设置对数坐标 set(gca,'XScale','log','YScale','log'); 2.加网格 grid on; 3.加log对齐网格 set(gca,'XScale','log','Y ...
- 用c#写一个json的万能解析器
CommonJsonModel .cs /// <summary> /// 万能JSON解析器 /// </summary> public class CommonJsonMo ...
- Ubuntu 15.04 安装 Nvidia Quadro系列显卡驱动
在这之前,我用的Ubuntu都是系统自带的驱动, 由于分辨率没有任何问题, 所以一直没有安装Nvidia官方的驱动; 近期更新到 15.04 之后, 在播放avi 格式的常规视频时却出现闪烁的现象, ...
- MySQL之建设工程监管信息系统
--创建SelfStudy数据库 CREATE DATABASE ConstructionDB ON PRIMARY --创建主数据库文件 ( NAME=' ConstructionDB', --数据 ...
- 关于windows的svchost进程的问题(年代有点久远)
这是N年前写的一篇关于svchost的blog,虽然写的不好却是我第一次写的技术类blog, 发上来做开博第一篇吧. ***************************************** ...