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

时间:2021-11-22 07:13:25

  一个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()
运行结果与之前相同。