利用wxpython编写GUI
首先建立一个简单的布局合理的图形界面,但是其中按下按键没有事情发生
#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的更多相关文章
- 教程和工具--用wxPython编写GUI程序的
wxPython是个很好的GUI库,对底层的C++库进行了封装,调用起来很方便,尤其是操作前台UI界面和后台多线程,两者配合很方便,做GUI程序最难是写界面尤其是布局. 关于wxPython,自己正在 ...
- LoadRunner利用ODBC编写MySql脚本
最近做了几周的LoadRunner测试,有一些心得,记录下来,以便以后查找. LoadRunner测试数据库是模拟客户端去连接数据库服务器,因此,需要协议(或者说驱动的支持).LoadRunner本身 ...
- 利用反射编写私有 Private 方法的单元测试
利用反射编写私有 Private 方法的单元测试 最近在添加一个新feature时,鉴于要给自己的代码一是增加代码的强壮性,二是增加代码测试的覆盖率.但是遇到了有些方法是 Private 的,但是在调 ...
- 利用java编写的盲注脚本
之前在网上见到一个盲注的题目,正好闲来无事,便用java写了个盲注脚本,并记录下过程中的坑 题目源码: <?php header("Content-Type: text/html;ch ...
- 品味性能之道<九>:利用Loadrunner编写socket性能测试脚本简述
一.概述 Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作. 二.socket概述 ...
- Python3使用tkinter编写GUI程序
目录 @(Python3中tkinter写的HTTP测试工具代码支持正则表达式和XPATH) 程序非常简单,暂时只支持GET方法,使用内置库tkinter编写GUI窗口,在Mac下运行效果图如下,wi ...
- Python 利用Python编写简单网络爬虫实例3
利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://bbs.51testing. ...
- Python 利用Python编写简单网络爬虫实例2
利用Python编写简单网络爬虫实例2 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://www.51testing. ...
- 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!
本文主要展示的是通过使用python和PyInstaller来构建恶意软件的一些poc. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!众所周知的,恶意软件如果影响到了他人的生 ...
随机推荐
- git 超时 时长 设置?
[Pipeline] { (Checkout) [Pipeline] checkout > git.exe rev-parse --is-inside-work-tree # timeout=1 ...
- PyTorch的十七个损失函数
本文截取自<PyTorch 模型训练实用教程>,获取全文pdf请点击: tensor-yu/PyTorch_Tutorialgithub.com 版权声明:本文为博主原创文章,转载请附上 ...
- Multiplication Puzzle POJ - 1651
解法 区间dp例题,长度从2开始到n结束起点从1到n,中间枚举的时候是看着左端点右端点与中点的乘积 代码 #include <iostream> #include <cstring& ...
- [kuangbin带你飞]专题五 并查集
并查集的介绍可以看下https://www.cnblogs.com/jkzr/p/10290488.html A - Wireless Network POJ - 2236 An earthquake ...
- AT2663 Namori Grundy
题目描述: luogu 题解: 好多细节,比如说每个点有且仅有一条入边. 所以说这个图一定是一个基环外向树. 考虑只是一个环的情况,我们可以发现,当环长为偶数时我们可以$01$交替染色,但环长为奇数时 ...
- matlab ()的用法
经常见到标识符+(),用法比如阵列Y().函数f()..... 时机到了,会总结一下.
- 第三讲:post-processsing with vcs+ files
1,dump wave by system function $vcdpluson(level_number,module_instance,....|net_or_reg) $vcdplusoff ...
- perl学习之:package and module
perl的包(package)和模块(PM) ==================================包package=========================== pac ...
- tornado框架基础02-输入和输出
01 输出 write bytes类型 class IndexHandler(tornado.web.RequestHandler): def get(self): self.write(b'Torn ...
- 07 mongodb
mongodb mongodb简介 简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为Web应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据 ...