1. 按鈕
按鈕是GUI界面中必不可少的一環(huán),在前面Tkinter中已經(jīng)介紹過按鈕,而且大家對按鈕一定不陌生,那么我們直接進(jìn)行語法的學(xué)習(xí),wxPython中按鈕的語法結(jié)構(gòu)為:
wx.Button(parent,id,label,pos,size,style,validator,name)
它的相關(guān)參數(shù)與前面我們使用過的參數(shù)大致相同,下面我們使用Button按鈕對上一節(jié)的登錄界面進(jìn)行修飾,代碼如下:
import wx class Frame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, wx.ID_ANY,"登陸", size =(300, 250)) panel = wx.Panel(self, -1) wx.StaticText(panel, wx.ID_ANY, "登錄界面", (0, 10),(150, -1),wx.ALIGN_RIGHT) self.text = wx.StaticText(panel, wx.ID_ANY, "賬戶", (0, 50),(80, -1),wx.ALIGN_RIGHT) self.text = wx.StaticText(panel, wx.ID_ANY, "密碼", (0, 90),(80, -1),wx.ALIGN_RIGHT) self.text = wx.TextCtrl(panel, wx.ID_ANY, "", (100,50),(100, 20),wx.ALIGN_LEFT) self.text = wx.TextCtrl(panel, wx.ID_ANY, "", (100,90), (100, 20), wx.ALIGN_LEFT) self.button = wx.Button(panel, wx.ID_ANY, "登陸", (70,120),(50, 20),wx.ALIGN_LEFT) self.button = wx.Button(panel, wx.ID_ANY, "注冊", (140,120), (50, 20), wx.ALIGN_LEFT) if __name__ == '__main__': app = wx.App() frame = Frame() frame.Show(True) app.MainLoop()
運行圖如下:
2. 復(fù)選框和單選按鈕
復(fù)選框?qū)?yīng)前面我們學(xué)習(xí)過的Tkinter中的check控件,復(fù)選框提供多個按鈕,可提供同時開關(guān)的功能,單選按鈕對應(yīng)Tkinter的radio控件,單選按鈕提供多個按鈕,但是只能選擇其中一個按鈕,在wxPython中我們使用wx.CheckBox和wx.RadioButton來創(chuàng)建復(fù)選框和單選按鈕。
看下面的例子(復(fù)選框):
import wx class Frame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, wx.ID_ANY,"復(fù)選框", size =(300, 250)) panel = wx.Panel(self, -1) self.box = wx.CheckBox(panel, -1, "Checkbox1", pos=(50, 50), size=(80, 20)) # 創(chuàng)建控件 self.box = wx.CheckBox(panel, -1, "Checkbox2", pos=(50, 70), size=(80, 20)) # 創(chuàng)建控件 self.box = wx.CheckBox(panel, -1, "Checkbox3", pos=(50, 90), size=(80, 20)) # 創(chuàng)建控件 if __name__ == '__main__': app = wx.App() frame = Frame() frame.Show(True) app.MainLoop()
運行結(jié)果如圖:
單選框代碼如下:
import wx class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, "選擇一種喜歡的運動方式", size=(300, 100)) panel = wx.Panel(self) wx.StaticText(panel, wx.ID_ANY, "選擇一種喜歡的運動方式", (0, 10), (200, -1), wx.ALIGN_RIGHT) self.check1 = wx.RadioButton(panel, -1, "打籃球", pos=(60, 40), size=(50, 20), style=wx.RB_GROUP) self.check2 = wx.RadioButton(panel, -1, "打乒乓球", pos=(130, 40), size=(50, 20)) self.check3 = wx.RadioButton(panel, -1, "跑步", pos=(200, 40), size=(50, 20)) if __name__ == "__main__": app = wx.App() frame = MyFrame() frame.Show() app.MainLoop()
運行圖如下:
單選按鈕和復(fù)選框的使用方式類似,區(qū)別在于可不可以多選,這個在我們注冊賬戶,選擇信息的時候會經(jīng)常使用到。
3. 總結(jié)
這幾種控件與Tkinter的幾種控件相對應(yīng),大家可以使用兩種方法去完成同一個問題,然后找到一種適合自己的。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程