利用wxpython编写GUI

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

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

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

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

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

时间: 2024-11-12 22:22:14

利用wxpython编写GUI的相关文章

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

wxPython是个很好的GUI库,对底层的C++库进行了封装,调用起来很方便,尤其是操作前台UI界面和后台多线程,两者配合很方便,做GUI程序最难是写界面尤其是布局. 关于wxPython,自己正在用的书<wxPython in action>,网上有中文翻译版,对各种控件.布局讲解很详细. 另外,今天在网上(http://blog.163.com/[email protected]/blog/static/78265448201141911555919/)发现一个工具--wxGlade,可

SA:T1法利用Matlab编写主函数实现对一元函数优化求解——Jason niu

%SA:T1法利用Matlab编写主函数实现对一元函数优化求解--Jason niu x = 1:0.01:2; y = sin(10*pi*x) ./ x; figure plot(x,y,'linewidth',1.5) ylim([-1.5, 1.5]) xlabel('x') ylabel('y') title('SA:T1法利用Matlab编写主函数实现对一元函数y = sin(10*pi*x) / x优化求解-Jason niu') hold on [maxVal,maxIndex]

利用多线程编写 生产者-消费者 关系

package ace; import java.util.ArrayList; import java.util.Timer; import java.util.TimerTask; /** * 利用多线程编写 生产者-消费者 关系 */ public class ProductionAndConsumption { private static ArrayList<String> products = new ArrayList<String>(); // 产品 private

看我如何利用Shell编写vsftpd管理软件

今天弄服务器的时候无意间用到此脚本,觉得当时写的虽然不咋样,但还是有点借鉴意义,就拿出来给大家看看.希望大家喜欢 先看看演示视频 看我如何利用Shell编写vsftpd管理软件 高清版下载: 百度云下载 OK然后我们来看看脚本的实现过程,时间有点久了当时的想法可能现在有点想不起来了,解释的不对的地方望见谅 脚本分为7个部分,这里我只做简单的解释 第一部分 脚本开始就利用awk提取日志中的用户名字段保存到tmp目录下的ftplog-userlist.txt文件中,方便后面查询 然后开始信息的展示,

如何利用CSS3编写一个满屏的布局

如何利用CSS3编写一个满屏的布局 css3的出现能帮助我们更加轻松的实现各种想要的效果,例如写一个刚好满屏的布局,我们就可以利用CSS3的弹性盒模型来实现. 先来贴出html布局代码: 1 <%- include header %> 2 <div class="wrapper"> 3 <div id="appswall"> 4 <div class="adsapp-title"><butto

利用MFC编写计算器

端午节这两天没什么事,就用MFC写了一个简单的计算器,界面做的也比较简单,如下图1,可以进行简单的加.减.乘和除功能,小数点显示这块做的不是很好,比如输入1.2,不会一个个的显示,而是先显示"1",后同时显示".2",还有就是遇到0.00时,显示的也不够人性化,哎,就这样吧... 图1 1.建立工程:New -> Projects,选择Win32 MFC AppWizard(exe),并输入工程(counter)名字及设置好路径,点击OK,选择"Di

品味性能之道&lt;九&gt;:利用Loadrunner编写socket性能测试脚本简述

一.概述 Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作. 二.socket概述 socket是操作系统中I/O系统的网络延伸部分,它扩展了操作系统的基本I/O到网络通信,使进程和机器之间的通信成为可能.如果想完全地理解socket在Loadrunner中如何工作的,熟悉一些关于它的历史会很有帮助. 当前常用的socket,最早起源于BSD UNIX类的操作系统.在UNIX系统上,比如BSD,把对网络的支持加入操作系统,以一

备份_利用word编写导出多表语句

原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/42104599 实验目标:利用word编写使用exp工具导出用户多表时的书写格式 实验环境: 操作系统:WINDOWS2008 64bit 数据库:ORACLE 11G R2 64bit 使用软件:word 2010.excel 2010.UltraEdit.PL/SQ

deep learning 利用MATLAB制作GUI的数字识别可视化界面

在前面几节讲过一些简单的深度神经网络分类器,由于CNNs(卷积神经网络)程序出来的识别率有一些问题需要,所以暂时还没有更新这一部分.这节我想介绍下利用MATLAB的GUI设计一个图形化界面的NMIST识别系统.界面其实很简单,如下所示: 下面我就将一步一步介绍如何做这个界面. 第一步:打开MATLAB→File→New→GUI,然后就会出现如下图示. 然后点击Blank GUI(Default),这是就创建了一个空白的untitled.fig,你可以把它保存在你想存的目录下面. 第二步:这是就需