wxPython程序由两个必要的对象组成,应用对象APP和顶级窗口对象Frame
创新互联主要从事网站设计制作、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务西吉,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220先看一段最简单的代码:
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个步骤:
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)调用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()