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. sublime3添加对react代码检查

    安装eslint npm install -g eslint npm install -g eslint-plugin-react 安装完后调用eslint --init 初始化,生成.eslintr ...

  2. R语言多项式回归

    含有x和y这两个变量的线性回归是所有回归分析中最常见的一种:而且,在描述它们关系的时候,也是最有效.最容易假设的一种模型.然而,有些时候,它的实际情况下某些潜在的关系是非常复杂的,不是二元分析所能解决 ...

  3. acvity和fragment通过广播联系

    今天我遇到一个问题,就是在activity中需要动态改变fragment中的控件,以前看到过可以在activity中得到fragment实例,然后修改控件: 今天实验了一个新的办法,通过新的办法,就是 ...

  4. NuGet安装及使用教程

    Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加.移除和更新引 ...

  5. Openstack+Kubernetes+Docker微服务实践之路--RPC

    重点来了,本文全面阐述一下我们的RPC是怎么实现并如何使用的,跟Kubernetes和Openstack怎么结合.  在选型一文中说到我们选定的RPC框架是Apache Thrift,它的用法是在Ma ...

  6. ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。

    问题:ObjectStateManager 中已存在具有同一键的对象.ObjectStateManager 无法跟踪具有相同键的多个对象. 解决方案:在查询的时候加上AsNoTracking()就ok ...

  7. (原创)Xilinx的ISE生成模块ngc网表文件

    ISE中,右击“Synthesize”,选中“Process Properties”,将“Xilinx Specific Options:-iobuf”的对勾取消. 将取消模块的ioBuff,因为模块 ...

  8. G将军的敢死队——树状DP

    当前节点的两种情况: 1.beChoosed = {son.beAbandoned乘积} //当前节点选中的情况下,子节点都不能选 2.beAbandoned = {(son.beAbandoned ...

  9. TAP/TUN(二)

    tap.c代码      #include<assert.h> #include<fcntl.h> #include<stdio.h> #include<st ...

  10. 在linux上部署web环境

    1.升级python到2.7版本(通过源码包重新安装一个2.7版本的python):wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9. ...