實戰(zhàn)內(nèi)容:完成一個簡單的翻譯器程序,翻譯器的效果圖如下。
在翻譯內(nèi)容中輸入信息,點擊翻譯,如下圖。
設計理念:在輸入框中填入我們需要翻譯的內(nèi)容,然后點擊翻譯按鈕完成翻譯,在對話框中顯示翻譯出的內(nèi)容。點擊確定可以進行其他內(nèi)容的翻譯,點擊關閉按鈕則結束程序,我們設計一個中英互譯的翻譯器。
本節(jié)我們先進行界面的開發(fā)。
1. 窗口搭建
import wx class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, "翻譯器", size=(600, 200)) panel = wx.Panel(self)#創(chuàng)建一個畫布,然后創(chuàng)建功能區(qū)并放到畫布上 #創(chuàng)建一個標題,放在panel中 self.title = wx.StaticText(panel,label = '簡單翻譯器') #創(chuàng)建一個靜態(tài)文本,放在panel中 self.translate = wx.StaticText(panel,label = '翻譯內(nèi)容:') #創(chuàng)建一個輸入文本框,放在panel中 self.tran_slate = wx.TextCtrl(panel,style = wx.TE_LEFT) #創(chuàng)建一個翻譯按鈕,放在panel中 self.button_ts = wx.Button(panel,label = '翻譯') #創(chuàng)建一個關閉按鈕,放在panel中 self.button_shutdown = wx.Button(panel,label = '關閉') container_one = wx.BoxSizer(wx.HORIZONTAL) #把靜態(tài)文本和輸入文本框放在這個BoxSizer當中 container_one.Add(self.translate,proportion = 0,flag = wx.ALL,border = 7) container_one.Add(self.tran_slate,proportion = 1,flag = wx.ALL,border = 7) #再創(chuàng)建一個水平排布的BoxSizer container_two = wx.BoxSizer(wx.HORIZONTAL) #把兩個按鈕放到這個BoxSizer中 container_two.Add(self.button_ts,proportion = 0,flag = wx.ALIGN_CENTER,border = 4) container_two.Add(self.button_shutdown,proportion =0,flag = wx.ALIGN_CENTER,border = 4) #創(chuàng)建一個豎直排布的BoxSizer sizers = wx.BoxSizer(wx.VERTICAL) #把上面的內(nèi)容都放到這個BoxSizer當中即可 sizers.Add(self.title,proportion=0,flag=wx.BOTTOM|wx.TOP|wx.ALIGN_CENTER,border=10) sizers.Add(container_one,proportion = 0,flag =wx.EXPAND|wx.LEFT|wx.RIGHT,border=40) sizers.Add(container_two, proportion=0, flag=wx.ALIGN_CENTER|wx.TOP, border=10) panel.SetSizer(sizers) if __name__ == "__main__": app = wx.App() frame = MyFrame() frame.Show() app.MainLoop()
這個頁面的設計采用兩個靜態(tài)文本+輸入文本框+兩個按鈕,中間的‘簡單翻譯器’為單獨內(nèi)容放置在頭部作為標題,然后靜態(tài)文本‘翻譯內(nèi)容’+輸入文本框放在一個水平布局中,最后再設計兩個按鈕來幫助我們進行后續(xù)的操作,詳細內(nèi)容可以參考前面的GUI編程。
2. 運行圖
3. 總結
本節(jié)我們使用GUI編程中的wxPython模塊進行了頁面的開發(fā),這樣就完成了界面的開發(fā),由于我們的翻譯器支持翻譯單詞和語句,所有我們在設計寬度的時候采用了這樣的一個模型,避免填入的內(nèi)容過長而無法顯示,下一節(jié)我們通過爬蟲的內(nèi)容來進行翻譯功能的實現(xiàn)。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程