我們在前面學習來Tkinter模塊,通過該模塊我們可以進行簡單的圖像界面開發(fā),但是我們可以發(fā)現(xiàn)很多人在開發(fā)的時候還會選擇wxPython模塊,它是一個比較成熟且特性比較豐富的模塊,它和Tkinter類似,也要引入窗口、按鈕、文本框等內(nèi)容,但是又有它獨特的用法,在這里我們先通過一張圖來了解一下程序和窗口之間的關系。
然后我們通過一個最簡單的wxPython程序來對應一下相關結(jié)構(gòu),代碼如下:
import wx app = wx.App() win = wx.Frame(None,title = '小程序',size = (300,300)) win.Show() app.MainLoop()
注意我們導入的時候使用wx兩個英文字母,然后第一行的app即我們的應用程序?qū)ο?,win對應的是一個窗口對象,我們可以在窗口中添加組件或者功能,然后下面的一行是使這個窗口顯示,最后一行就是主事件循環(huán),運行結(jié)果如下:
1. 初始化
上面提到的例子就是我們使用wxPython的基本架構(gòu),如果我們在程序開發(fā)的時候,使用類與對象的關系會更方便我們后期的處理。
我們創(chuàng)建子類的時候首先定義一個子類,然后創(chuàng)建一個OnInit()方法來初始化這個子類,最后在主程序中調(diào)用這個類,然后進入主事件循環(huán)。
代碼如下:
import wx class App(wx.App): def OnInit(self): window = wx.Frame(parent = None,title = '初始化') window.Show() return True if __name__ == '__main__': app = App() app.MainLoop()
運行結(jié)果為:
這個例子中,我們定義的子類App繼承了父類wx.App,然后在子類中創(chuàng)建了一個初始化方法,最后在主程序中創(chuàng)建一個類的實例,再進入主事件循環(huán)。
2. Frame框架
我們在創(chuàng)建實例的時候總是要引入Frame框架,它屬于一種容器,可以用來存放我們主程序的一些標題和功能區(qū),我們來看一下它的語法結(jié)構(gòu):
wx.Frame(parent,id=-1,title=’’,style=’’,name=’’,pos=wx.DefaultPositon,size=wx.DefaultSize)
Parent指的是框架所處的位置,也就是父窗口的名字,如果當前為頂級窗口,就用None來代替,id為新窗口的ID號,通常設置為-1,title即窗口的名字,size即窗口的大小,style即窗口的類型,name框架的內(nèi)部名字,pos為一個對象,指定了這個新窗口在界面中的位置,上面所選的Default為默認參數(shù)。
具體使用如下:
window = wx.Frame(parent = None,id = -1,title = 'Frame框架',size = (400,400),pos = (2,2))
3. 總結(jié)
對比與Tkinter我們可以發(fā)現(xiàn)他們之間有很多類似的地方,但是他們的語法部分是對應的但使用方法卻不相同,所以在使用的時候一定要注意兩個模塊的使用區(qū)別。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程