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

 #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. C# 如何正确删除List中的item

    参考博客 https://blog.csdn.net/Le_Sam/article/details/75633737 https://www.cnblogs.com/hedianzhan/p/9130 ...

  2. Git Bash Windows客户端乱码

    最近升级Git后,打开Git Bash出现了乱码,解决方法是: 注意,我升级之后,本地和字符集栏位出现了空白的情况.如果检查这里为空白,那么把本地设置为zn_CN,字符集设置为UTF-8

  3. 【Java IO流】浅谈io,bio,nio,aio

    本文转载自:http://www.cnblogs.com/doit8791/p/4951591.html 1.同步异步.阻塞非阻塞概念        同步和异步是针对应用程序和内核的交互而言的. 阻塞 ...

  4. Verilog仿真事件队列

    1.分层的事件队列 2.执行事件的队列 3.仿真时间的计算 4.同一层事件,无先后顺序 这个点:觉得Verilog与systemVerilog比较,Verilog比较笼统,systemVerilog则 ...

  5. debian swoole环境

    debian 9.8 #目录 /lnmp/soure #软件下载位置 /lnmp/data #测试程序位置 安装php-7.3.3 #卸载apt安装的 apt-get autoremove php7* ...

  6. 稳定排序(sort+结构体)

    #include<cstdio> #include<algorithm> #include<string.h> using namespace std; struc ...

  7. Fiddler抓包-get与post请求

    from:https://www.cnblogs.com/yoyoketang/p/6719717.html 本篇以博客园的请求为例,简单分析get与post数据有何不一样,以后也能分辨出哪些是get ...

  8. Ext修改Confirm弹框按钮的默认值

  9. 让Selenium稳定运行的技巧

    Selenium简介 Selenium是非常流行的Web自动化测试工具.它具有自动化测试用例制作简单,支持多种浏览器和不同的操作系统等优点. Selenium脚本不稳定的问题 有很多时候Seleniu ...

  10. Leetcode 300.最长上升子序列

    最长上升子序列 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的 ...