1.1 创建一个wxPython应用

Ch1 Starting with wxPython

1.1 创建一个wxPython应用

App对象必须在所有wxPython应用和GUI对象构造前构造。App对象创建应用程序和提供用于分发事件和连接UI行为的主事件循环

这一章会介绍怎么创建一个最小的wxPython应用,这个应用会作为基础用于后面的所有章节

怎么做

import wx

class MyApp(wx.App):
    def OnInit(self):
        wx.MessageBox("Hello wxPython", "wxApp")
        return True

if __name__ == "__main__":
    app = MyApp(False)
    app.MainLoop()


运行结果

它是怎么工作的

我们写了什么:
1. 构造了一个wx.App的子类
2. 复写了OnInit方法
3. 调用app的MainLoop方法

  • 当app启动的时候,OnInit方法会被app的MainLoop方法调用并提供了一个入口去启动主逻辑和UI。在这个例子里,我们只用该方法去展示一个普通的消息弹出框。
  • app的MainLoop方法会持续运行直到与该app关联的最后一个窗口关闭。
  • OnInit方法一定要return True为了保证MainLoop的初始化成功
  • MainLoop方法处理和分发所有需要显示UI和按钮点击动作信息
  • 当对话框中OK按钮被点击的时候,他会发送一个被MainLoop方法发送用来关闭对话框的消息。在这个例子里,当对话框被关闭(returned),OnInit也会返回(return),这时候没有存在window对象。所以,app的MainLoop方法也会返回,这段代码就结束了

更多

虽然我们的wx.App对象以例子中的形式创建出来的,但是该类的构造还有4个可选的参数用来修改该对象的一些行为

wx.App(redirect=False, filename=None, useBestVisual=False, clearSigInt=True)
  1. redirect: 如果为True,stdout会重定向到一个调试窗口
  2. filename: 如果redirect为True而该参数非空,stdout就会重定向到该参数指的文件
  3. useBestVisual: 该应用是否尝试使用潜在工具包(underlying toolkit)提供的最好视觉效果(这个在大多系统上没有效果 - -…..)
  4. clearSigInt:如果为True,则允许在命令行中输入Ctrl+C终止进程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值