Python实例之wxpython中Frame使用方法


Posted in Python onJune 09, 2014

本节为大家分享的例子是wxpython Frame的用法。

例子:

#!/usr/bin/python  
# -*- coding: GBK -*-  
# simple.py  import wx  
app = wx.App()  
frame = wx.Frame(None)  
frame.Show()  
app.MainLoop()

例2,

#!/usr/bin/python
告诉程序 python 解释器的路径,只是在 linux 系统下有用,在 Windows 下写上这行代码不起作用,但是也没问题# -*- coding: GBK -*-
告诉 python 系统字符编码,这样我们就可以在程序中使用中文汉字了,如果没有这一行就是乱码。Windows 下是 GBK,Linux 下是UTF-8
app = wx.App()
初始化应用程序
frame = wx.Frame(None)
frame.Show()
创建一个 Frame (就是窗体),并显示出来。
app.MainLoop()
应用程序进入消息循环

Frame 其实就是窗体,前面生成窗体时没有给他任何参数,只生成了一个默认的窗体,生成默认窗体的代码:
frame = wx.Frame(None) 

其实 wx.Frame 可以传入很多参数,由此来控制生成窗体的样式和行为,现在来看看 Frame构造函数的原型:
__init__(self, Window parent, int id=-1, String title=EmptyString,  
            Point pos=DefaultPosition, Size size=DefaultSize,  
            long style=DEFAULT_FRAME_STYLE, String name=FrameNameStr) 

参数1:parent
当前窗口的父窗口,如果当前窗口是top-level window的话,则parent=None,如果不是顶层窗口,则它的值为所属frame的名字

  参数2:id
  窗体编号。如果设置为-1,则系统自动给他分配一个编号。默认为-1.

  参数3:title
  窗体的标题栏,即Caption。默认为空。

  参数4:pos
  窗体的位置坐标。默认值为(-1,-1),则窗体的位置由系统决定。

  参数5:size
  窗体的大小。默认值为(-1,-1),则窗体的大小由系统决定。

  参数6:style
  窗体样式。默认值为 DEFAULT_FRAME_STYLE

  默认样式 DEFAULT_FRAME_STYLE 是下面这些值的复合:
wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | 
wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN

  它包括最小化按钮、最大化按钮、系统菜单、标题栏、关闭按钮、可变大小等等。您也可以根据自己的需求改变样式,具体请参照帮助。

  参数7:name
  窗体名称。

  可以看到,7个参数中6个都有默认值,只有第一个参数 parent 需要设置一下,所以一个最简单的窗体就是:

Python代码  收藏代码
frame = wx.Frame(None) 

窗体标题:

Python代码  收藏代码
frame = wx.Frame(None,title="Hello World") 

位置和大小:

Python代码  收藏代码
frame = wx.Frame(None,title="世界你好",size=(300,150),pos=(200,200)) 

样式一:只有一个光秃秃的标题栏

Python代码  收藏代码
frame = wx.Frame(None,style=wx.CAPTION) 

样式二:只有客户区,没有标题栏,也不能改变大小

Python代码  收藏代码
frame = wx.Frame(None,style=0) 

样式三:只有一个关闭按钮,不能改变大小

frame = wx.Frame(None,style= wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)  
wx.DEFAULT_FRAME_STYLE :这是每个窗口的缺省风格,包含标题、可调节大小的边框,最大最小化按钮、关闭按钮和系统菜单。
wx.CAPTION :在框架上增加一个标题栏,它显示该框架的标题属性。
wx.CLOSE_BOX :指示系统在框架的标题栏上显示一个关闭框,使用系统默认的位置和样式。
Wx.FRAME_ON_TOP : 置顶窗口
w x.FRAME_SHAP ED :用这个样式创建的框架可以使用SetShape()方法去创建一个非矩形的窗口。
wx.FRAME_TOOL_WINDOW :通过给框架一个比正常更小的标题栏,使框架看起来像一个工具框窗口。在Windows下,使用这个样式创建的框架不会出现在显示所有打开窗口的任务栏上。
wx.MAXIMIZE_BOX :指示系统在框架的标题栏上显示一个最大化框,使用系统默认的位置和样式。
wx.MINIMIZE_BOX :指示系统在框架的标题栏上显示一个最小化框,使用系统默认的位置和样式。
wx.RESIZE_BORDER :给框架增加一个可以改变尺寸的边框。
wx.SIMPLE_BORDER :没有装饰的边框。不能工作在所有平台上。
wx.SYSTEM_MENU :增加系统菜单(带有关闭、移动、改变尺寸等功能)和关闭框到这个窗口。在系统菜单中的改变尺寸和关闭功能的有效性依赖于wx.MAXIMIZE_BOX, wx.MINIMIZE_BOX和wx.CLOSE_BOX样式是否被应用。
wx.FRAME_EX_META :如果时在 MacOS 中,这个属性用于是否显示“金属风格”
wx.FRAME_EX_CONTEXTHELP :是否有联机帮助按钮。
wx.FRAME_FLOAT_ON_PARENT :窗口是否显示在最上层,与 wxSTAY_ON_TOP 不同,它必须有一个父窗口。

frame窗体风格通过style属性来设置,例如:
style=wx.SYSTEM_MENU|wx.MINIMIZE_BOX|wx.CLOSE_BOX|wx.CAPTION

Python 相关文章推荐
python递归查询菜单并转换成json实例
Mar 27 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
Oct 21 Python
解决python super()调用多重继承函数的问题
Jun 26 Python
在Django中实现添加user到group并查看
Nov 18 Python
Flask项目中实现短信验证码和邮箱验证码功能
Dec 05 Python
python实现的批量分析xml标签中各个类别个数功能示例
Dec 30 Python
python基于property()函数定义属性
Jan 22 Python
深度学习入门之Pytorch 数据增强的实现
Feb 26 Python
Python应用实现双指数函数及拟合代码实例
Jun 19 Python
Python基于gevent实现文件字符串查找器
Aug 11 Python
pycharm 如何查看某一函数源码的快捷键
May 12 Python
wxpython学习笔记(推荐查看)
Jun 09 #Python
wxPython中文教程入门实例
Jun 09 #Python
python操作xml文件详细介绍
Jun 09 #Python
实例讲解python函数式编程
Jun 09 #Python
理解python多线程(python多线程简明教程)
Jun 09 #Python
Python高级应用实例对比:高效计算大文件中的最长行的长度
Jun 08 #Python
Python实例分享:快速查找出被挂马的文件
Jun 08 #Python
You might like
SONY SRF-M100的电路分析
2021/03/02 无线电
php,不用COM,生成excel文件
2006/10/09 PHP
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Cython 三分钟入门教程
2009/09/17 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
对Python3中的input函数详解
2018/04/22 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
基于Python解密仿射密码
2019/10/21 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
办公室主任职责范本
2014/03/07 职场文书
陈欧的广告词
2014/03/18 职场文书
党员创先争优活动总结
2014/05/04 职场文书
拉拉队口号
2014/06/16 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
销售员自我评价
2015/03/11 职场文书
导游词之青城山景区
2019/09/27 职场文书