#图形用户界面
1.下载和安装wxPython
2.创建并显示一个框架
import wx #导入wxPython
app=wx.App()
win=wx.Frame(None)
win.Show() #调用窗口前需要show
app.MainLoop() #调用窗口

wxPython包含两个对象:
应用程序对象和根窗口
应用程序对象通过实例化wx.App实现
根窗口通过wx.Frame实现 完成图形的基本容器
wx.App wx的主要部分

import wx #导入
创建应用程序对象:
app=wx.App()
创建窗口 window-Frame
win=wx.Frame(None)
显示窗口:
win.Show()
事件循环展示出来
app.MainLoop()
#在窗口添加组件
btn=wx.Button(win)
设置组件位置,尺寸
size pos
添加组件
text control:wx.TextCtrl
设置为文本区

#coding:utf8
import wx
#导入
#创建应用程序对象:
app=wx.App()
#创建窗口 window-Frame 加上标题
win=wx.Frame(None,title="editor",size=(410,340))
#在窗口添加组件
wx.Button(win,label="Open", pos=(245,5),size=(80,25))
wx.Button(win,label="Save", pos=(325,5),size=(80,25))
wx.TextCtrl(win,pos=(5,5),size=(245,25))
wx.TextCtrl(win,pos=(5,35),size=(400,300),style=wx.TE_MULTILINE|wx.HSCROLL)
#btn=wx.Button(win)
#显示窗口:
win.Show()
#事件循环展示出来
app.MainLoop()

尺寸器:sizer wx.BoxSizer
管理添加在其中的组件布局位置
hbox=wx.BoxSizer(wx.HORIZONTAL
wx.VERTICAL)
增加panel以利于布局
sizer.add(组件,proportion=,flag=,border=)

事件处理:
组件的Bind绑定事件处理函数
组件 发生事件 对应事件行为(事件处理函数)

以下是简单记事本代码
#coding:utf8
import wx
#导入
#创建应用程序对象:
app=wx.App()
#创建窗口 window-Frame 加上标题
win=wx.Frame(None,title="editor",size=(410,340))

#定义函数
def openfile(evt):
#print "hello world"
#每按一次open按钮 就在屏幕上打印一行hello world
filepath=filename.GetValue()#获取文件名
fopen=open(filepath)#打开文件
#print fopen.read()#读取文件 输入屏幕
contents.SetValue(fopen.read())#将文件信息放入文本框
fopen.close()#关闭文件
def savefile(evt):
filepath=filename.GetValue()
fopen=open(filepath,'w')
fopen.write(contents.GetValue())#写入文件
fopen.close()

bkg=wx.Panel(win)
#在窗口添加组件
#将win换成bkg
openbutton=wx.Button(bkg,label="Open")
openbutton.Bind(wx.EVT_BUTTON,openfile)
#绑定事件 在openbutton按钮上绑定一个openfile事件函数

savebutton=wx.Button(bkg,label="Save")
savebutton.Bind(wx.EVT_BUTTON,savefile)
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)
hbox.Add(openbutton,proportion=0,flag=wx.LEFT,border=5)
hbox.Add(savebutton,proportion=0,flag=wx.LEFT,border=5)

bbox=wx.BoxSizer(wx.VERTICAL)
bbox.Add(hbox,proportion=0,flag=wx.EXPAND|wx.ALL,border=5)
#EXPAND 可以拉伸
bbox.Add(contents,proportion=1,flag=wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT,border=5)
#btn=wx.Button(win)
bkg.SetSizer(bbox)
#显示窗口:
win.Show()
#事件循环展示出来
app.MainLoop()

预览图片:

python之GUI图形用户界面 2014-4-7的更多相关文章

  1. 黑马程序员_<<GUI(图形用户界面)--------1>>

    --------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1.  GUI图形用户界面 1.简述 Gra ...

  2. java第八节 GUI/图形用户界面

    /* *第8讲 GUI/图形用户界面 * AWT的基础知识 * GUI全称是Graphical User Interface,即图形用户界面 * JDK中提供了AWT和Swing两个包,用于GUI程序 ...

  3. python学习笔记(十 一)、GUI图形用户界面

    python图形用户界面就是包含按钮.输入框.选择框等组件的窗口.主要依赖与工具包进行代码编写.python GUI工具包并发互斥的,你可以选择多个工具包进行安装,有极大选择空间.每个工具包都有不同用 ...

  4. GUI(图形用户界面)

    一.GUI(图形用户界面) GUI Graphical User Interface(图形用户接口) 用图形的方式,来显示计算机操作的界面,这样更方便更直观 CLI Command line User ...

  5. GUI 图形用户界面 [学习笔记]

    今晚返璞归真了一把, 系统了解了一下GUI的有关知识: GUI(Graphical User Interface) 图形用户界面 是指采用图形方式显示的计算机操作用户接口.与早期计算机使用的命令行界面 ...

  6. R python在无图形用户界面时保存图片

    在用python的matplotlib,和R中自带的作图,如果想保存图片时,当你有图形用户界面时是没有问题的,但是当没有图形用户界面时,会报错: 在R中,解决办法: https://blog.csdn ...

  7. linux系统中firewalld防火墙管理工具firewall-config(GUI图形用户界面)

    firewall-config是firewalld防火墙管理工具的GUI(图形用户界面)版本,几乎可以实现所有以命令行来执行的操作. firewall-config的界面如下图(在终端直接运行fire ...

  8. Python学习笔记:wxPython(GUI图形用户界面)

    wxPython是一套基于Python的第三方GUI插件,可用Python制作丰富的图形化界面程序. 安装:pip install wxPython 或者 网站下载安装https://pypi.org ...

  9. java GUI(图形用户界面)

    GUI Graphical User Interface(图形用户接口). 用图形的方式,来显示计算机操作的界面,这样更方便更直观. CLI Command line User Interface ( ...

随机推荐

  1. [转]广义正交匹配追踪(gOMP)

    广义正交匹配追踪(Generalized OMP, gOMP)算法可以看作为OMP算法的一种推广,由文献[1]提出,第1作者本硕为哈工大毕业,发表此论文时在Korea University攻读博士学位 ...

  2. [POI2008]海报PLA

    Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值 ...

  3. 构造 HDOJ 5400 Arithmetic Sequence

    题目传送门 题意:问有多少个区间,其中存在j使得ai + d1 == ai+1(i<j) && ai + d2 == ai+1 (i>j) 构造:用c1[i], c2[i] ...

  4. C#内存映射文件学习[转]

    原文链接 内存映射文件是由一个文件到进程地址空间的映射. C#提供了允许应用程序把文件映射到一个进程的函(MemoryMappedFile.CreateOrOpen).内存映射文件与虚拟内存有些类似, ...

  5. border-1px的实现(stylus)

    当样式像素一定时,因手机有320px,640px等.各自的缩放比差异,所以设备显示像素就会有1Npx,2Npx.为保设计稿还原度,解决就是用media + scale. // stylus语法 bor ...

  6. 前端组件化(二):优化 DOM 操作

    看看上一节我们的代码,仔细留意一下 changeLikeText 函数,这个函数包含了 DOM 操作,现在看起来比较简单,那是因为现在只有 isLiked 一个状态.由于数据状态改变会导致需要我们去更 ...

  7. Maximum Subsequence Sum 最大子序列和的进击之路

    本文解决最大子序列和问题,有两个题目组成,第二个题目比第一个要求多一些(其实就是要求输出子序列首尾元素). 01-复杂度1 最大子列和问题   (20分) 给定KK个整数组成的序列{ N1​​, N2 ...

  8. Java语法基础-static关键字

    static关键字说明 “static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法.这 ...

  9. Mysql:is not allowed to connect to this MySQL server [转]

    原文链接http://www.blogjava.net/acooly/archive/2008/09/17/229368.html 如果你想连接你的mysql的时候发生这个错误:ERROR 1130: ...

  10. inux 软件编译、安装、删除

    640?wx_fmt=otherimage.png 本文学习内容 手动安装软件 手动安装下载源码的软件 源码编译3步骤 deb包-包依赖管理 dekg -l 查看所以安装deb的包 apt-get仓库 ...