牛骨文教育服务平台(让学习变的简单)

wxPython:简单的wxPython程序的另一种写法

一个wxPython程序必须有一个Frame类和App类对象,这两个类可以自己编写,对于简单的应用,可以直接使用wx.PySimpleApp,从而避免了自己编写APP类。下面是上一篇笔记中小程序的另一种写法:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
    Function:简单的wxPython程序
    Input:NONE
    Output: NONE
    author: socrates
    blog:http://www.cnblogs.com/dyx1024/
    date:2012-06-30
"""       
    
import wx

class MyFrame(wx.Frame):
    """
    创建一个Frame类
    """
    def __init__(self, image, parent = None, id = -1,
                 pos = wx.DefaultPosition,
                 title = u"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 MyApp(wx.App):
#    """
#    创建一个App类
#    """
#    def OnInit(self):
#        image = wx.Image("back_image.jpg", wx.BITMAP_TYPE_JPEG) #加载国片
#        self.frame = MyFrame(image)
#        self.frame.Show()
#        self.SetTopWindow(self.frame)
#        return True
    
def main():
    #创建一个PySimpleApp类对象
    app = wx.PySimpleApp()
    image = wx.Image("back_image.jpg", wx.BITMAP_TYPE_JPEG) #加载国片
    frame = MyFrame(image)
    frame.Show()
    app.MainLoop()    
    
if __name__ == "__main__":
    main()

运行结果与之前相同。