首先建立一个简单的布局合理的图形界面,但是其中按下按键没有事情发生

 #encoding=utf-8
__author__ = 'heng'
#编写一个GUI
import wx
app = wx.App() #先创建一个图形界面
win = wx.Frame(None,title = "simple editor",size = (500,500)) #title用于设置图形界面的标题,size是用来设置窗口的初始大小
bkg = wx.Panel(win) #利用Panel管理界面的布局
saveButton = wx.Button(bkg,label = 'save') #在画布bkg上设置标签为save的按键
openButton = wx.Button(bkg,label = 'open')
filename = wx.TextCtrl(bkg) #此函数用于在画布上建立一个文本的输入框
contents = wx.TextCtrl(bkg,style = wx.TE_MULTILINE | wx.HSCROLL) #在画布上建立可换行的文本输入框并且添加了滚动条
#开始布局文本框,左右的布局
hbox = wx.BoxSizer() #开始添加尺寸器,默认为水平
hbox.Add(filename,proportion = 1,flag = wx.EXPAND) #proportion用于设置对象所占的比例,1代表占用剩下的额外空间的所有的空间,flag用来设置图标的属性,wx.EXPAND代表图标可扩展
hbox.Add(saveButton,proportion = 0,flag = wx.LEFT,border = 5) #代表距离左边界的距离为5个像素点(边缘的宽度,间隔)
hbox.Add(openButton,proportion = 0,flag = wx.LEFT,border = 5)
#开始上下的布局
bbox = wx.BoxSizer(wx.VERTICAL) #上下的布局,垂直的布局
bbox.Add(hbox,proportion = 0,flag = wx.EXPAND | wx.ALL,border = 5)
bbox.Add(contents,proportion = 1,flag = wx.EXPAND| wx.LEFT|wx.RIGHT|wx.BOTTOM,border = 5) bkg.SetSizer(bbox)
win.Show()
app.MainLoop()

下面建立一个可以处理按键事件的图形界面

 #encoding=utf-8
__author__ = 'heng'
#编写一个GUI
import wx
#添加按键的事件
def load(event):
file = open(filename.GetValue()) #打开小的文本框中的文件
contents.SetValue(file.read()) #读取文本的信息
file.close()
def save(event):
file = open(filename.GetValue(),'w')
file.write(contents.GetValue())
file.close() app = wx.App() #先创建一个图形界面
win = wx.Frame(None,title = "simple editor",size = (500,500)) #title用于设置图形界面的标题,size是用来设置窗口的初始大小
bkg = wx.Panel(win) #利用Panel管理界面的布局
saveButton = wx.Button(bkg,label = 'save') #在画布bkg上设置标签为save的按键
saveButton.Bind(wx.EVT_BUTTON,save) #将save的事件处理绑定到按键上
openButton = wx.Button(bkg,label = 'open')
openButton.Bind(wx.EVT_BUTTON,load)
filename = wx.TextCtrl(bkg) #此函数用于在画布上建立一个文本的输入框
contents = wx.TextCtrl(bkg,style = wx.TE_MULTILINE | wx.HSCROLL) #在画布上建立可换行的文本输入框并且添加了滚动条
#开始布局文本框,左右的布局
hbox = wx.BoxSizer() #开始添加尺寸器,默认为水平
hbox.Add(filename,proportion = 1,flag = wx.EXPAND) #proportion用于设置对象所占的比例,1代表占用剩下的额外空间的所有的空间,flag用来设置图标的属性,wx.EXPAND代表图标可扩展
hbox.Add(saveButton,proportion = 0,flag = wx.LEFT,border = 5) #代表距离左边界的距离为5个像素点(边缘的宽度,间隔)
hbox.Add(openButton,proportion = 0,flag = wx.LEFT,border = 5)
#开始上下的布局
bbox = wx.BoxSizer(wx.VERTICAL) #上下的布局,垂直的布局
bbox.Add(hbox,proportion = 0,flag = wx.EXPAND | wx.ALL,border = 5)
bbox.Add(contents,proportion = 1,flag = wx.EXPAND| wx.LEFT|wx.RIGHT|wx.BOTTOM,border = 5) bkg.SetSizer(bbox)
win.Show()
app.MainLoop()

上面的代码中添加了处理事件的函数,可以将函数绑定到对应的按键上去。本事件用到了对文件的读写的操作。

利用wxpython编写GUI的更多相关文章

  1. 教程和工具--用wxPython编写GUI程序的

    wxPython是个很好的GUI库,对底层的C++库进行了封装,调用起来很方便,尤其是操作前台UI界面和后台多线程,两者配合很方便,做GUI程序最难是写界面尤其是布局. 关于wxPython,自己正在 ...

  2. LoadRunner利用ODBC编写MySql脚本

    最近做了几周的LoadRunner测试,有一些心得,记录下来,以便以后查找. LoadRunner测试数据库是模拟客户端去连接数据库服务器,因此,需要协议(或者说驱动的支持).LoadRunner本身 ...

  3. 利用反射编写私有 Private 方法的单元测试

    利用反射编写私有 Private 方法的单元测试 最近在添加一个新feature时,鉴于要给自己的代码一是增加代码的强壮性,二是增加代码测试的覆盖率.但是遇到了有些方法是 Private 的,但是在调 ...

  4. 利用java编写的盲注脚本

    之前在网上见到一个盲注的题目,正好闲来无事,便用java写了个盲注脚本,并记录下过程中的坑 题目源码: <?php header("Content-Type: text/html;ch ...

  5. 品味性能之道<九>:利用Loadrunner编写socket性能测试脚本简述

            一.概述         Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作.     二.socket概述     ...

  6. Python3使用tkinter编写GUI程序

    目录 @(Python3中tkinter写的HTTP测试工具代码支持正则表达式和XPATH) 程序非常简单,暂时只支持GET方法,使用内置库tkinter编写GUI窗口,在Mac下运行效果图如下,wi ...

  7. Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://bbs.51testing. ...

  8. Python 利用Python编写简单网络爬虫实例2

    利用Python编写简单网络爬虫实例2 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://www.51testing. ...

  9. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!

    本文主要展示的是通过使用python和PyInstaller来构建恶意软件的一些poc. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!众所周知的,恶意软件如果影响到了他人的生 ...

随机推荐

  1. git 超时 时长 设置?

    [Pipeline] { (Checkout) [Pipeline] checkout > git.exe rev-parse --is-inside-work-tree # timeout=1 ...

  2. PyTorch的十七个损失函数

    本文截取自<PyTorch 模型训练实用教程>,获取全文pdf请点击: tensor-yu/PyTorch_Tutorial​github.com 版权声明:本文为博主原创文章,转载请附上 ...

  3. Multiplication Puzzle POJ - 1651

    解法 区间dp例题,长度从2开始到n结束起点从1到n,中间枚举的时候是看着左端点右端点与中点的乘积 代码 #include <iostream> #include <cstring& ...

  4. [kuangbin带你飞]专题五 并查集

    并查集的介绍可以看下https://www.cnblogs.com/jkzr/p/10290488.html A - Wireless Network POJ - 2236 An earthquake ...

  5. AT2663 Namori Grundy

    题目描述: luogu 题解: 好多细节,比如说每个点有且仅有一条入边. 所以说这个图一定是一个基环外向树. 考虑只是一个环的情况,我们可以发现,当环长为偶数时我们可以$01$交替染色,但环长为奇数时 ...

  6. matlab ()的用法

    经常见到标识符+(),用法比如阵列Y().函数f()..... 时机到了,会总结一下.

  7. 第三讲:post-processsing with vcs+ files

    1,dump wave  by system function $vcdpluson(level_number,module_instance,....|net_or_reg) $vcdplusoff ...

  8. perl学习之:package and module

    perl的包(package)和模块(PM) ==================================包package===========================     pac ...

  9. tornado框架基础02-输入和输出

    01 输出 write bytes类型 class IndexHandler(tornado.web.RequestHandler): def get(self): self.write(b'Torn ...

  10. 07 mongodb

    mongodb mongodb简介 简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为Web应用提供可扩展的高性能数据存储解决方案.    MongoDB是一个介于关系数据 ...