wxPython程序由兩個必要的對象組成,應(yīng)用對象APP和頂級窗口對象Frame
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)西吉,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):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()
上面的代碼說明了開發(fā)wxPython程序必須的5個步驟:
wx.Frame(self, parent, id, title, pos, size, style, name)
其中,只有parent是必須的,其余都有默認(rèn)值,返回值為空。下面是其各個參數(shù)的類型:parent
(type=Window)id
(type=int)pos
(type=Point)size
(type=Size)style
(type=long)name
(type=String)調(diào)用Show()方法使frame可見,否則不可見??梢酝ㄟ^給Show一個布爾值參數(shù)來設(shè)定frame的可見性:
frame.Show(False) # 框架不可見frame.Show(True) # 框架可見frame.Hide() # 等同于frame.Show(False)
該程序并沒有定義一個__init__()方法,意味著父方法wx.App.__init()__將在對象創(chuàng)建時被自動調(diào)用。若自己定義__init__()方法,還需要調(diào)用其基類的__init__()方法。
class App(wx.APP):
def __init__(self):
wx.APP.__init__(self)
如果沒有這樣做, wxPython將不被初始化,并且OnInit()方法也不會調(diào)用
當(dāng)程序進入主循環(huán)后,控制權(quán)將轉(zhuǎn)交給wxPython。wxPython GUI程序主要響應(yīng)用戶的鼠標(biāo)和鍵盤事件。當(dāng)一個應(yīng)用程序的所有框架被關(guān)閉后,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()