wxPython学习1

 

wxPython程序所必须的五个基本步骤:

1.导入必须的wxPython包
2.子类化wxPython应用程序类(*注:书上说是必须子类化,不过我试验直接实例化wx.App也是可以的)
3.定义一个应用程序的初始化方法
4.创建一个应用程序类的实例
5.进入应用程序的主事件循环(MainLoop())

有两种方式导入wxPython包:老的方式和新的方式:

老的方式包名叫wxPython,可以用from wxPython import wx或者from wxPython.wx from *来导入。老的方式符合wxWidgets的命名规范,也就是所有类都以wx前缀开头。

新的方式包名叫wx,可以用import wx来导入。新的方式中对命名进行了简化,所有的命名都去掉了wx前缀,因为包名中已经有wx了,所以以前用wx.wxApp的地方,现在简化为了wx.App。

在从wxPython导入其它东西之前必须先导入wx,比如导入xrc,需要import wx; from wx import xrc;

在wxPython应用程序妄动时,App类的OnInit方法会被调用,原型是def OnInit(self),一般会在OnInit中创建并显示顶层窗口。OnInit必须返回True或者False表示初始化是否成功,返回False的话,应用程序不会继续执行。

wx.App能够重定向sys.stdout和sys.stderr的输出,默认情况下它会输出到控制台。但是wx.App类的构造函数有两个参 数,第一个参数是redirect,如果值为True,那么输出会被重定向到一个窗口,默认值是False,会输出到控制台,第二个参数是 filename,如果参数redirect为True,并且filename参数也被设置了,那么会重定向到filename指定的文件中。

当应用程序的所有顶级窗口被用户关闭时,wxPython就退出。在退出之前wx.App子类的OnExit方法会被调用,所以可以定义OnExit这个钩子来执行清理工作。即使使用了wx.Exit()来关闭wxPython程序,OnExit方法仍然会被触发。

可以使用wx.App类的SetExitOnFrameDelete(flag)来改变默认行为,如果flag设置为False,则最后的窗口关闭后wxPython程序仍然继续运行,直到wx.Exit()被调用。

也可以用wx.App类的ExitMainLoop()方法和全局的wx.Exit()方法来紧急退出程序,不过不被推荐,因为它将导致一些清理函数被跳过。

wxPython应用程序至少必须有一个顶级窗口,可以是wx.Frame或者wx.Dialog的子类,顶级窗口是指没有任何父窗口的窗口,可以 使用SetTopWindow来设置主顶级窗口,如果没设置的话那么wx.App的顶级窗口列表中的第一个框架被认为是主顶级窗口。

wxFrame的构造器:

wx.Frame(parent, id = -1, title = "", pos = wx.DefaultPosition, size = wx.DefaultSize, style = wx.DEFAULT_FRAME_STYLE, name = "frame")
parent:框架的父窗口,顶级窗口的话设置为None
id:新窗口的ID号,传递-1的话,wxPython会自动生成一个新的,可以用GetId()来得到,全局函数wx.NewId()会自动生成不重复的一个新ID
title:标题
pos:一个wx.Point对象,指定新窗口的左上角在屏幕上的位置。通常(0, 0)是显示器左上角,默认的(-1, -1)将让系统决定窗口位置。wx.Point对象可以用Set(x, y)和Get()来取值和设值,Get()返回一个元组,也可以直接访问wx.Point的x和y属性。需要时一个元组会自动转化为wx.Point对象
size:一个wx.Size对象,指定窗口的初始大小,默认的(-1, -1)将让系统决定窗口的初始大小。wx.Size和wx.Point几乎完全相同,除了属性名变为了width和height。
style:窗口的类型,可以用或运行来组合。一些比较重要的样式如下:wx.CAPTION, wx.CLOSE_BOX, wx.DEFAULT_FRAME_STYLE, wx.FRAME_TOOL_WINDOW, wx.MAXIMIZE_BOX, wx.MINIMIZE_BOX, wx.RESIZE_BORDER, wx.SIMPLE_BORDER, wx.SYSTEM_MENU
name:框架的内在名字,可以用它来寻找窗口

对于wx.Frame,一般情况会创建一个和Frame一样大小的wx.Panel来容纳框架上的内容,这样可以窗口内容与工具栏状态栏等分开,通过tab近包,可以遍历wx.Panel中的元素,wx.Frame不能。

创建一个子窗口时指定了父窗口,那么这个子窗口就隐式地增加到父对象中了,不需要再显式地加入,比如:button = wx.Button(panel, label = "Close", pos = (125, 10), size = (50, 50))

wxPython的一些事件:

wx.EVT_BUTTON:按钮单击事件
wx.EVT_CLOSE:窗口关闭事件

wxPython的一些预定义对话框:

消息对话框:wx.MessageDialog(parent, message, caption = "Message box", style = wx.OK 按位或 wx.CANCEL, pos = wx.DefaultPosition)
文本输入对话框:wx.TextEntryDialog(parent, message, caption = "Please enter text, initialContent = "",)
单选对话框:wx.SingleChoiceDialog(None, message, caption = "Single Choice", [value1, value2...])

Bind()方法是wx.EvtHandler的一个方法,wx.EvtHandler是所有可显示对象的父类,所以Bind可以被放置在任何显示 类。Bind的用法:Bind(event, handler, source = None, id = wx.ID_ANY, id2 = wx.ID_ANY)

wxPython 学习文档是一套提供给开发者学习和使用 wxPython 的资源和指南。它包含了关于 wxPython 的详细介绍、学习指导、示例代码以及常见问题解答等内容。 wxPython 是一种基于 Python 编程语言的图形用户界面(GUI) 工具包,它使用了 wxWidgets 库作为底层实现,可以用来创建跨平台的桌面应用程序。学习 wxPython 文档是入门 wxPython 开发的重要步骤。以下是 wxPython 学习文档通常包含的内容: 1. 简介和安装指南:文档中会介绍 wxPython 的背景和特点,以及如何在不同操作系统上安装和配置 wxPython。 2. 入门教程:文档会提供一个从零开始的教程,介绍如何创建一个基本的 wxPython 应用程序,包括创建窗口、添加控件、处理事件等。 3. 组件和控件的使用说明:针对不同类型的控件(如按钮、文本框、列表框等),文档会提供详细的使用说明,包括控件的属性、方法、事件等。 4. 常用布局管理器和容器类:文档会介绍 wxPython 中的布局管理器和容器类的使用方法,帮助开发者更灵活地设计界面布局。 5. 高级主题和技巧:文档中会涵盖一些进阶的主题和技巧,如自定义控件、多线程编程、菜单和工具栏的使用等。 6. 示例代码和项目:文档中会提供一些示例代码和项目,用于演示和实践各种 wxPython 的用法和技巧。 7. 常见问题解答和开发者社区:文档中会收集和解答一些常见问题,并提供开发者社区的链接,方便开发者交流和寻求帮助。 通过学习 wxPython 学习文档,开发者可以系统地了解和学习 wxPython,从简单到复杂地掌握 wxPython 的使用技巧,并最终能够自主设计和开发出功能强大、美观易用的桌面应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值