wxPython程序由两个必要的对象组成,应用对象APP和顶级窗口对象Frame 应用程序对象APP管理主事件循环MainLoop() 顶级窗口对象Frame管理数据,控制并呈现给用户 先看一段最简单的代码:

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

上面的代码说明了开发wxPython程序必须的5个步骤: 1. 导入wxPython包 2. 子类化wxPython应用类 3. 定义应用程序的初始化方法 4. 创建一个应用程序类的实例 5. 进入这个应用程序的主事件循环(MainLoop()) OnInit()方法没有参数,返回值为BOOL,此部分可以做一些关键数据初始化的动作,如果失败,返回False,程序退出。通常会在此方法中创建一个Frame对象,并调用Frame的Show()方法。 应用程序对象开始于实例被创建时,结束于最后一个应用程序窗口被关闭,与Python脚本开始执行没有先后关系。 每个wxPython程序必须有一个application对象和至少一个frame对象。application对象必须是wx.App的一个实例或在OnInit()方法中定义的一个子类的一个实例,当程序启动时,OnInit()方法将被wx.App父类调用。 上面的代码中,定义了名为MyApp的子类,在OnInit()方法中创建frame对象。

wx.Frame(self, parent, id, title, pos, size, style, name)

其中,只有parent是必须的,其余都有默认值,返回值为空。下面是其各个参数的类型:

parent (type=Window)
id    (type=int)
pos      (type=Point)
size    (type=Size)
style  (type=long)
name   (type=String)
Returns: bool

调用Show()方法使frame可见,否则不可见。可以通过给Show一个布尔值参数来设定frame的可见性:

frame.Show(False)    # 框架不可见
frame.Show(True)     # 框架可见
frame.Hide()         # 等同于frame.Show(False)

该程序并没有定义一个__init__()方法,意味着父方法wx.App.__init()__将在对象创建时被自动调用。若自己定义__init__()方法,还需要调用其基类的__init__()方法。

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

如果没有这样做, wxPython将不被初始化,并且OnInit()方法也不会调用 当程序进入主循环后,控制权将转交给wxPython。wxPython GUI程序主要响应用户的鼠标和键盘事件。当一个应用程序的所有框架被关闭后,app.MainLoop()方法将返回,程序退出。

import wx
class Frame(wx.Frame):def __init__(self, image, parent=None, id =-1,pos = wx.DefaultPosition, title = "Hello, wxPython!"):temp = image.ConvertToBitmap()size = temp.GetWidth(), temp.GetHeight()wx.Frame.__init__(self, parent, id, title, pos, size)self.bmp = wx.StaticBitmap(parent = self, bitmap = temp)
class App(wx.App):def OnInit(self):image = wx.Image('wxPython.jpg', wx.BITMAP_TYPE_JPEG)self.frame = Frame(image)self.frame.Show()self.SetTopWindow(self.frame)return True
def main():app = App()app.MainLoop()
if __name__ == '__main__':main()

转载于:https://www.cnblogs.com/u0mo5/p/3973768.html

wxPython--学习笔记相关推荐

  1. wxpython学习笔记之窗口样式(window_style、flag)、文本框格式(wxTextCtrl_style)

    window_style wx.ALWAYS_show_SB:当不需要的时候(例如,当窗口的大小足够大,不需要滚动条来导航它)滚动条,禁用它们而不是隐藏它们,这种风格目前只在wxMSW和wxUnive ...

  2. wxPython in Action 学习笔记一

    wxPython 学习笔记 第一章 欢迎使用 wxPython 1. 通常情况下,Python 中的模块导入顺序是随意的,相互无关的. 但是 wxPython 中不同,你从 wxPython 导入其他 ...

  3. printdocument python_python学习笔记之wxpython打印预览

    主要学习wxPython in action 和Demo程序,做点学习笔记 wxPython 通过使用设备上下文和绘制操作来实现打印,wxPython中实现打印的一个重要的类:wx.PrintOut它 ...

  4. wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)

    如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...

  5. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

  6. python 控制系统音量_pygame学习笔记(4):声音控制

    pygame.mixer是一个用来处理声音的模块,其含义为"混音器".游戏中对声音的处理一般包括制造声音和播放声音两部分,这里仅学习了播放声音部分. 1.pygame.mixer启 ...

  7. PyQt5学习笔记01----第一个窗口

    写在前面的话 最近想学习一下桌面程序开发,可是MFC臃肿复杂界面难看,而WPF无法跨平台,似乎只剩下了QT这一个选择.本来想借着学习python热情,看看python下有木有什么好看的图形库,怎奈我用 ...

  8. PYTHON学习笔记之(一)2020.08

    PYTHON学习笔记之(一)2020.08 Python基础 数据类型 常见的列表.字典,以及元组.集合. 1 列表 list 1.1 列表转换字符串 stu = ['王一', '李二', '张三'] ...

  9. python学习笔记(一)Python 简单介绍

    Python学习笔记(一)Python 简单介绍 Python介绍 Python简介 Python应用领域 Python是解释型的语⾔ 编译和解释的区别是什么? 编译型vs解释型 编译型 解释型 Py ...

  10. 中国大学MOOCPython语言程序设计(北京理工大学)第7-9周学习笔记和课后练习

    中国大学MOOCPython语言程序设计(北京理工大学)第7-9周学习笔记和课后练习 第7周 文件和数据格式化 7.1 文件的使用 7.2 实例11: 自动轨迹绘制 7.3 一维数据的格式化和处理 7 ...

最新文章

  1. JSP笔记-JavaBean
  2. 谷歌和Facebook正在吸走欧洲的人才
  3. 九坤投资投身基础科研,携手IDEA成立联合实验室
  4. 悲催的中国式项目开发
  5. LPTHW 笨方法学习python 16章
  6. plsql如何执行单个语句_在单个try-with-resources语句中仔细指定多个资源
  7. 详解虚拟机中为Linux添加硬盘
  8. [DIV/CSS] 【译】60个有用CSS代码片段
  9. 对ExtendedWebBrowser的再扩展
  10. idea远程调试Java应用程序
  11. php 数字加逗号,PHP数字格式化,数字每三位加逗号
  12. Asp.net MVC 自定义路由
  13. 安装 VS2005 安装库 遇到vcredist.msi找不到问题
  14. 南京理工大学本科毕业论文答辩PPT模板
  15. java mysql 分页_mysql分页查询总结
  16. OA系统分级审批功能
  17. MAE 论文逐段精读【论文精读】(深度学习论文篇)
  18. 【POJ 2719 --- Faulty Odometer】
  19. Android 9 (P)在user模式下无法使用fastboot烧录怎么破
  20. 中泰资管天团丨如何用量化复制巴菲特?

热门文章

  1. Apache HTTP Server Version 安装简要记录
  2. Python自然语言处理学习笔记(41):5.2 标注语料库
  3. jQuery学习(十二)—jQuery中对象的查找方法总结
  4. error40无法打开到sql_SQL-mysql游标与触发器
  5. 都有数据一直报空指针_C语言指针难吗?纸老虎而已,纯干货讲解(附代码)...
  6. 我发现很多人嘴里喊着要赚钱
  7. 三十万,买一只基金,放着不管,五年后会怎么样?
  8. “不管什么关系,只要提借钱,千万别借”你怎么看?
  9. 闺女在大连上大学,一个月1500生活费她说少
  10. 主播助理的三种常见工作类型