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中的XML 工具
Apr 13 Python
python实现n个数中选出m个数的方法
Nov 13 Python
python解压TAR文件至指定文件夹的实例
Jun 10 Python
Python中调用其他程序的方式详解
Aug 06 Python
深入了解python中元类的相关知识
Aug 29 Python
解决pytorch DataLoader num_workers出现的问题
Jan 14 Python
Python爬虫程序架构和运行流程原理解析
Mar 09 Python
Django之全局使用request.user.username的实例详解
May 14 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
Python txt文件常用读写操作代码实例
Aug 03 Python
python 基于pygame实现俄罗斯方块
Mar 02 Python
Python insert() / append() 用法 Leetcode实战演示
Mar 31 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
PHP 类型转换函数intval
2009/06/20 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
一个实用的php验证码类
2017/07/06 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
不使用jquery实现js打字效果示例分享
2014/01/19 Javascript
ES2015 Symbol 一种绝不重复的值
2016/12/25 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
python使用matplotlib画饼状图
2018/09/25 Python
python selenium 弹出框处理的实现
2019/02/26 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
python实现列表的排序方法分享
2019/07/01 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
2020/04/07 Python
薇诺娜官方网上商城:专注敏感肌肤
2017/05/25 全球购物
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
电气自动化自荐信
2013/10/10 职场文书
商场中秋节活动方案
2014/02/07 职场文书
领导干部作风建设总结
2014/10/23 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
三方合作意向书范本
2015/05/09 职场文书
小学班长竞选稿
2015/11/20 职场文书
导游词之南京中山陵
2019/11/27 职场文书