import wx #
class App(wx.App): #
def OnInit(self): #
frame = wx.Frame(parent=None, title=’Bare’)
frame.Show()
return True
app = App() #
app.MainLoop() #

上面的代码的任何一行都不能少,否则将不能工作。这个基本的wxPython
程序说明了开发任一wxPython程序所必须的五个基本步骤:
1、导入必须的wxPython包
2、子类化wxPython应用程序类
3、定义一个应用程序的初始化方法
4、创建一个应用程序类的实例
5、进入这个应用程序的主事件循环

1.2.1 导入wxPython

import wx

1.2.2 使用应用程序和框架工作
一旦你导入了wx模块,你就能够创建你的应用程序(application)对象和
框架(frame)对象。每个wxPython程序必须有一个application对象和至少一个
frame对象。application对象必须是wx.App的一个实例或你在OnInit()方法中定义
的一个子类的一个实例。当你的应用程序启动的时候,OnInit()方法将被
wx.App父类调用。

子类化wxPython application类
下面的代码演示了如何定义我们的wx.App的子类:

class MyApp(wx.App):
def OnInit(self):
frame = wx.Frame(parent=None, id=-1, title=”Bare”)
frame.Show()
return True

上面我们定义了一个名为MyApp的子类。我们通常在OnInit()方法中创建
frame对象。上面的wx.Frame接受三个参数,仅第一个是必须的,其余的都有默
认值。
调用Show()方法使frame可见,否则不可见。我们可以通过给Show()一个布
尔值参数来设定frame的可见性

frame.Show(False) # 使框架不可见.
frame.Show(True) # True是默认值,使框架可见.
frame.Hide() # 等同于frame.Show(False)

定义一个应用程序的初始化方法
注意:我们没有为我们的应用程序类定义一个__init__()方法。在Python中,这就意
味着父方法wx.App.__init()__将在对象创建时被自动调用。这是一个好的事情。如果
你定义你自己的__init__()方法,不要忘了调用其基类的__init()__方法,示例如下:

class App(wx.App):
def __init__(self):
wx.App.__init__(self)

如果你忘了这样做,wxPython不将被初始化并且你的OnInit()方法也不将得到调用。

创建一个应用程序实例并进入它的主事件循环

这步是创建wx.App子类的实例,并调用它的MainLoop()方法:

app = App()
app.MainLoop()

一旦进入主事件循环,控制权将转交给wxPython。wxPython GUI程序主要
响应用户的鼠标和键盘事件。当一个应用程序的所有框架被关闭后,这个
app.MainLoop()方法将返回且程序退出。

wxpython学习:创建最小的空的wxPython程序的更多相关文章

  1. wxPython学习笔记(一)

    创建最小的空的wxPython程序 frame = wx.Frame(parent=None, title='Bare') frame.Show() return True app = App() a ...

  2. [wxPython学习]wx.CallAfter和wx.FutureCall

    [wxPython学习]wx.CallAfter和wx.FutureCall 今天才学到的两个wxPython中的函数:wx.CallAfter和wx.FutureCall.这是两个无关的函数,但又多 ...

  3. Spring MVC 学习 -- 创建过程

    Spring MVC 学习 -- 创建过程 Spring MVC我们使用的时候会在web.xml中配置 <servlet> <servlet-name>SpringMVC< ...

  4. pandas学习(创建多层索引、数据重塑与轴向旋转)

    pandas学习(创建多层索引.数据重塑与轴向旋转) 目录 创建多层索引 数据重塑与轴向旋转 创建多层索引 隐式构造 Series 最常见的方法是给DataFrame构造函数的index参数传递两个或 ...

  5. lucene&solr学习——创建和查询索引(代码篇)

    1. Lucene的下载 Lucene是开发全文检索功能的工具包,从官网下载Lucene4.10.3并解压. 官网:http://lucene.apache.org/ 版本:lucene7.7.0 ( ...

  6. 创建ASP.NET Core MVC应用程序(6)-添加验证

    创建ASP.NET Core MVC应用程序(6)-添加验证 DRY原则 DRY("Don't Repeat Yourself")是MVC的设计原则之一.ASP.NET MVC鼓励 ...

  7. 创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL

    创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL 用惯.NET的研发人员都习惯性地使用SQLServer作为数据库.然而.NET Core ...

  8. 创建ASP.NET Core MVC应用程序(1)-添加Controller和View

    创建ASP.NET Core MVC应用程序(1)-添加Controller和View 参考文档:Getting started with ASP.NET Core MVC and Visual St ...

  9. Android开发之 Windows环境下通过Eclipse创建的第一个安卓应用程序(图文详细步骤)

    第一篇  windows环境下搭建创建的第一个安卓应用程序 为了方便,我这里只采用了一体包进行演示. 一.下载安卓环境的一体包. 官网下载:安卓官网(一般被墙了) 网盘下载: http://yunpa ...

随机推荐

  1. Spring ——Spring IoC容器详解(图示)

    1.1 Spring IoC容器 从昨天的例子当中我们已经知道spring IoC容器的作用,它可以容纳我们所开发的各种Bean.并且我们可以从中获取各种发布在Spring IoC容器里的Bean,并 ...

  2. 《Python编程:从入门到实践》分享下载

    书籍信息 书名:<Python编程:从入门到实践> 原作名:Python Crash Course 作者: [美] 埃里克·马瑟斯 豆瓣评分:9.1分(2534人评价) 内容简介 本书是一 ...

  3. Generator - Python 生成器

    Generator, python 生成器, 先熟悉一下儿相关定义, generator function 生成器函数, 生成器函数是一个在定义体中存有 'yield' 关键字的函数. 当生成器函数被 ...

  4. Prometheus监控k8s集合

    Prometheus监控k8s Prometheus监控k8s(1)-Prometheus简介 Prometheus监控k8s(2)-手动部署Prometheus Prometheus监控k8s(3) ...

  5. k8s系列----一个简单的例子

    本实验来自k8s权威指南 解决访问demo出错,关键是靠https://www.cnblogs.com/neutronman/p/8047547.html此链接下面的某个大神的评论 主要yaml文件 ...

  6. 【2020】DBus,一个更能满足企业需求的大数据采集平台

    功能远超Sqoop.DataX.Flume.Logatash.Filebeat等采集工具 注:由于文章篇幅有限,完整文档可扫免费获取 深知其他组件的局限性,才能彰显DBus的优越感 当前有很多数据采集 ...

  7. vertical-align和line-height的理解及实例

    line-height 字符实际大小和font-size的关系: 下图中不同字体font-size都是100px 测量了一下每个 span 的高度:Helvetica 115px,Gruppo 97p ...

  8. C语言三(2)

    多重 if...else....else 结构 语法: if(条件1) { 语句1; } else if(条件2) { 语句2; } else if(条件3) { 语句3; } else { 语句N; ...

  9. laravel web server设置远程访问及原理

    laravel中可以用命令行php artisan serve 启动web server,并通过localhost:8000访问项目. 但是因为开发环境为虚拟机部署项目,然后通过端口访问,所以开启服务 ...

  10. $.getJSON获取json数据失败

    首先简单介绍下 $.ajax  $.get  $.post  $.getJSON 的区别和用法 $.ajax中有一个type属性,专门用来指定是get请求还是post请求的分别对应的就是$.get和$ ...