wxPython 笔记(10)应用程序对象

简介:

前面的笔记主要学习了 wx.Frame 的用法,在我们创建一个 Frame 的时候,总是要用到一个应用程序对象 wx.App ,每个程序中必不可少的两行代码是:

1、创建应用程序对象 wx.App()

2、开始主循环 app.MainLoop()

 

以前用 Delphi 或者 VB 的时候我们是看不到这个对象的(其实也有),我们一般都把窗体就当作了一个程序,其实窗体对象和应用程序对象还是有很大区别的,具体的区别要说起来比较复杂,简单说它主要有以下几个作用:

1、创建和管理消息循环,这个不用说了吧。

2、初始化程序进程,就是程序运行必要的一些资源。

3、缺省的事件处理

4、应用程序对象的其他一些属性的设置和读取等等 

 

下面我们看一下 wx.App 的初始化函数:

__init__(selfredirect=Falsefilename=NoneuseBestVisual=FalseclearSigInt=True)


第一个参数 redirect 如果为 False ,代表所有的输出到控制台窗口;如果为 True ,则输出到另外一个专门的输出窗口;

有的时候程序有错误,输出窗口会显示一些错误信息,但是总是一闪而过,根本看不清楚,这时候,第二个参数  filename 就起作用了,在 redirect 为 True 的情况下,所有的输出到你指定的文件中,这样就不会错过任何信息了。

 

下面的代码显示了 wx.App 的一些简单的用法,代码如下:

 

复制代码
代码
 1  # !/usr/bin/python
 2  #  -*- coding: GBK -*-
 3 
 4  import  wx
 5 
 6  class  App(wx.App):
 7       def   __init__ (self):
 8          wx.App. __init__ (self, False )
 9          
10       def   OnInit (self):
11           print   " 程序初始化..... "
12          self.frmMain = MainFrame()
13          self.frmMain.Centre()
14          self.frmMain.Show()
15          self.SetTopWindow(self.frmMain)
16          
17           print   " App.GetAppName(): "   +  self. GetAppName ()
18           print   " App.GetClassName(): "   +  self. GetClassName ()
19           return  True
20      
21       def   OnExit (self):
22           print   " 程序退出..... "
23          
24      
25  class  MainFrame(wx.Frame):
26       def   __init__ (self):
27          wx.Frame. __init__ (self,None,id =- 1 ,title = " Hello wxPython! " ,size = ( 250 , 150 ));
28          
29 
30  if   __name__ == ' __main__ ' :
31      app = App()
32      app. MainLoop ()
复制代码

 

//==========================================



本文转自左洸博客园博客,原文链接:http://www.cnblogs.com/myqiao/archive/2010/12/25/1916977.html,如需转载请自行联系原作者

目录
相关文章
|
3月前
|
C# Python
使用wxpython开发跨平台桌面应用,对wxpython控件实现类似C#扩展函数处理的探究
【10月更文挑战第30天】使用 `wxPython` 开发跨平台桌面应用时,可以通过创建辅助类来模拟 C# 扩展函数的功能。具体步骤包括:1. 创建辅助类 `WxWidgetHelpers`;2. 在该类中定义静态方法,如 `set_button_color`;3. 在应用中调用这些方法。这种方法提高了代码的可读性和可维护性,无需修改 `wxPython` 库即可为控件添加自定义功能。但需要注意显式调用方法和避免命名冲突。
|
9月前
|
Windows
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
|
前端开发 JavaScript 开发者
前端封装库/工具库的实用工具库之UnderScore
前端封装库/工具库是现代Web开发中必不可少的一部分。在众多的实用工具库中,UnderScore是一个非常受欢迎和广泛使用的工具库。今天我们就来了解一下UnderScore这个实用工具库。
385 1
|
前端开发 JavaScript 数据可视化
封装库/工具库中重要概念之实用工具库
在前端开发中,封装库和工具库是非常重要的。它们可以帮助我们提高开发效率,减少出错的机会,并且使得代码更加易于维护。在本文中,我们将探讨前端中一些实用的封装库和工具库。
123 0
|
编解码 人工智能 算法
你收藏了那些实用工具类网站?
今天来给大家分享几个众多网友们推荐的,宝藏工具类网站
146 0
|
JSON 小程序 程序员
分享大神们推荐的实用工具类网站!
今天来给大家分享几个大神们推荐的,宝藏工具类网站
191 0
|
JavaScript 前端开发 开发工具
很方便的javascript开发工具--火狐的Scratchpad(代码草稿本)工具
火狐的console控制台可以很方便的测试单行js代码,就像这样:
151 0
很方便的javascript开发工具--火狐的Scratchpad(代码草稿本)工具
|
编译器 开发工具 C语言
Qt三方库开发技术:Qt应用内部打开PDF文件
Qt三方库开发技术:Qt应用内部打开PDF文件
|
API C# C++
C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件
原文:C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件       这两天忙着把框架改为支持加载C++和Delphi的插件,来不及更新blog了。      原来的写的框架只支持c#插件,这个好做,直接用c#的反射功能便可。
1131 0
|
JavaScript 测试技术 API
尝试造了个工具类库,名为 Diana
项目地址: diana 文档地址: http://muyunyun.cn/diana/ 造轮子的意义 为啥已经有如此多的前端工具类库还要自己造轮子呢?个人认为有以下几个观点吧: 定制性强,能根据自己的需求为主导延伸开发。
1346 0

热门文章

最新文章