WxPython书籍[摘记]

1.任何wxPython应用程序都需要一个应用程序对象。这个应用程序对象必须是类wx.App或其定制的子类的一个实例。
2.在OnInit()方法中将至少创建一个框架对象,并调用该框架的Show()方法。
3.如果在系统中只有一个框架的话,避免创建一个wx.App子类。
4.如果你的应用程序十分简单的话,你应该只使用wx.PySimpleApp,且不需要任何其它的全局参数。
5.wxPython应用程序将保持存活直到全局函数wx.Exit()被明确地调用。
6.一个应用程序一次只能有一主顶级窗口。
7.顶级窗口对象通常是类wx.Frame的子类,尽管它也可以是wx.Dialog的子类。
8.wxPython中的说法,框架就是用户通常称的窗口。在wxPython中,wx.Frame是所有框架的父类。

运行 python hello.py 出错,提示:
File "<stdin>" , line 1
python hello.py

解释:
In the shell you can run shell commands, in the Python command line you can run Python code.
"python hello.py" is a shell command, not Python code, so you should run it in the shell, but not on the Python command line.

HellowxPython.py:

 #!/user/bin/env python

 """Hello,wxPython!Program."""

 import wx

 #自定义子类化Frame
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)
#wx.StaticBitmap显示位图
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()

AppFrame.py:

 #!/usr/bin/env python

 import wx
#import images class AppFrame(wx.Frame):
def __init__(self,parent,id):
wx.Frame.__init__(self,parent,id,'AppFrame',size=(300,300))
#1.Create Frame Panel............
panel = wx.Panel(self)
#2.Set Panel BackgroundColor........
panel.SetBackgroundColour('White')
#3.Create Buttons........
button = wx.Button(panel,label="CloseButton",pos=(125,10),size=(100,50))
buttonMsg = wx.Button(panel,label="MsgButton",pos=(125,60),size=(100,50))
#4.Buttons Bind Self EventFunctions......
self.Bind(wx.EVT_BUTTON,self.OnCloseMe,button)
self.Bind(wx.EVT_BUTTON,self.OnMsgMe,buttonMsg)
self.Bind(wx.EVT_CLOSE,self.OnCloseWindow)
#5.Create Frame StatusBar......
statusBar = self.CreateStatusBar()
#6.Create Frame ToolBar.........
#toolBar = self.CreateToolBar()
#toolBar.AddSimpleTool(wx.NewId(),images.getNewBitmap(),"New",
# "Long help for 'New'")
#toolBar.Realize()
#7.Create Frame MenuBar......
menuBar = wx.MenuBar()
menu1 = wx.Menu()
menu1.Append(wx.NewId(),"&Open","Open in status bar")
menu1.Append(wx.NewId(),"&Close","Close in status bar")
menuBar.Append(menu1,"&File")
menu2 = wx.Menu()
menu2.Append(wx.NewId(),"&Copy","Copy in status bar")
menu2.Append(wx.NewId(),"&Cut","")
menu2.Append(wx.NewId(),"&Paste","")
menu2.AppendSeparator()
menu2.Append(wx.NewId(),"&Options","Display Options")
menuBar.Append(menu2,"&Edit")
self.SetMenuBar(menuBar) def OnCloseMe(self,event):
self.Close(True) def OnCloseWindow(self,event):
self.Destroy() def OnMsgMe(self,event):
dlg = wx.MessageDialog(None,'This is test!','MsgDialog',wx.YES_NO|wx.ICON_QUESTION)
result = dlg.ShowModal()
dlg.Destroy() if __name__ == '__main__':
app = wx.PySimpleApp()
frame = AppFrame(parent=None,id=-1)
frame.Show()
app.MainLoop()

wxPython入门练习代码 二的更多相关文章

  1. wxPython入门练习代码 一

    Bare.py: #1.导入必须的wxPython包 import wx #2.子类化wx应用程序类 class App(wx.App): #3.定义应用程序初始化方法 def OnInit(self ...

  2. wxPython入门练习代码 四

    自定义Model文件abtractmodel.py: class AbstractModel(object): def __init__(self): self.listeners = [] def ...

  3. wxPython入门练习代码 三

    DoubleEventFrame.py: #!/usr/bin/env/ python import wx class DoubleEventFrame(wx.Frame): def __init__ ...

  4. WCF入门教程(二)如何创建WCF服务

    WCF入门教程(二)从零做起-创建WCF服务 通过最基本的操作看到最简单的WCF如何实现的.这是VS的SDK默认创建的样本 1.创建WCF服务库 2.看其生成结构 1)IService1.cs(协议) ...

  5. iOS开发-UI 从入门到精通(二)

    iOS开发-UI 从入门到精通(二)是对 iOS开发-UI 从入门到精通(一)知识点的巩固,主要以习题练习为主,增强实战经验,为以后做开发打下坚实的基础! ※开发环境和注意事项: 1.前期iOS-UI ...

  6. 无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two]

    无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two] extjs技术交流,欢迎加群(201926085) 不管是几级下拉列表的联动实现本质上都是根据某个下拉列表的变化,去动态加载其 ...

  7. 转 猫都能学会的Unity3D Shader入门指南(二)

    猫都能学会的Unity3D Shader入门指南(二) 关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己 ...

  8. WPF入门教程系列(二) 深入剖析WPF Binding的使用方法

    WPF入门教程系列(二) 深入剖析WPF Binding的使用方法 同一个对象(特指System.Windows.DependencyObject的子类)的同一种属性(特指DependencyProp ...

  9. Asp.Net MVC4.0 官方教程 入门指南之二--添加一个控制器

    Asp.Net MVC4.0 官方教程 入门指南之二--添加一个控制器 MVC概念 MVC的含义是 “模型-视图-控制器”.MVC是一个架构良好并且易于测试和易于维护的开发模式.基于MVC模式的应用程 ...

随机推荐

  1. JAVA模拟HTTP post请求上传文件

    在开发中,我们使用的比较多的HTTP请求方式基本上就是GET.POST.其中GET用于从服务器获取数据,POST主要用于向服务器提交一些表单数据,例如文件上传等.而我们在使用HTTP请求时中遇到的比较 ...

  2. 使用react做的聊天对话列表

    刚刚接触react   可能写的地方有错误或者不完善的地方欢迎大家给指正 下面开始正题 首先分析页面基于react的特性--把页面中所有显示内容看做模块加载 本页面可以看做一个大的模块,我们暂且命名为 ...

  3. c# 邮件发送功能

    //统一由一个邮箱发送录用通知 string strfrom = "";//发件人邮箱地址 string strpow = "";//邮箱密码 string s ...

  4. easyui 随笔

    问题1:easyui-datagrid中,如果装载datagrid的表格通过javascript 或者 jquery 来resize,那么将会reload重新加载数据.这样当我们调整的时候不得不重新发 ...

  5. error: command 'cc' failed with exit status 1

    报错: Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/ ...

  6. Java 中如何原样输出转义符号

    Java 中的转义字符有好几种,常见的有: 八进制转义字符,格式:\ + 1到3位八进制数字,如\1, \20,范围为 \0 ~ \377,即最大值为255. Unicode转义字符,格式:\u + ...

  7. Redis教程(一):Redis简介

    转自:http://www.jb51.net/article/65240.htm 一.简介: 在过去的几年中,NoSQL数据库一度成为高并发.海量数据存储解决方案的代名词,与之相应的产品也呈现出雨后春 ...

  8. 移动web点5像素的秘密

    最近和一个朋友聊天,朋友吐露了工作上的一些不开心,说自己总是喜欢跟别人比较,活得比较累,这种感觉大部分人经历过,往往觉得是自己心态不好,其实不然,这是人性,此时应该快速摆脱这种状态,想到DOTA大9神 ...

  9. IntelliJ IDEA 2016

    IntelliJ IDEA 2016 注册码 43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1Ii ...

  10. LoadRunner ERROR: java.lang.NumberFormatException

    Loadrunner中使用lr_xml_get_values()获取服务端返回的字符串LcsId,LcsId为double,需要将该值转换为 int 后传入下一次请求中. 报错如下:Error is ...