wxFormBuilder是款開源,跨平臺的界面編輯設計工具,用于生成跨平臺編譯代碼,支持快速生成C++,python, Lua 等代碼和 XRC 資源文件,輔助快速搭建高效的帶有GUI界面編輯器的開發(fā)環(huán)境。
1、準備一個窗體。
點擊wxformbuilder上方的標簽“forms”,并點擊標簽下方的第一個類似窗體的圖標“Frame”
然后,下面就會出現(xiàn)一個窗體。但是現(xiàn)在還不能直接往窗體上添加各種控件。咱們還需要給窗體添加布局器BoxSizer。
2、添加布局器
點擊wxformbuilder上方的標簽“Layout,并點擊標簽下方的第一個圖標“wxBoxSizer”。添加一個只有以列控件布局的布局器。這時,窗體上并沒有什么變化。但是窗口左邊的目錄樹有變化了,窗體下多了一個布局器。
3、放置控件
保持目錄樹如上圖一樣,選中布局器bSizer1。這樣,添加進窗體的控件都屬于并使用這個布局器的方法,單列布局。就是,所有添加上去的控件都是在一列上。
點擊wxformbuilder上方的標簽“Common,順次并點擊標簽下方的地三個圖標“wxStaticText”,第四個圖標“wxTextCtrl”,第一個圖標“wxButton”。這樣,窗體設置上就會多出一個文字標簽、一個文本框和按鈕。
4、修改控件屬性
點擊設計窗體上的控件,或者左邊樹形結構的控件名。在wxformbuilder右邊的編輯欄都會自動變成對應控件的屬性編輯。在此,你可以修改該控件的和窗體的各類屬性。
此處,我們將會修改主窗體的name,文本編輯框的name,文字標簽的label,和按鍵的label。
4.1 修改主窗體的name
主窗體的name和控件的name決定了你之后要使用的python代碼時,使用的實體對象的變量名。點擊樹形結構的MyFrame1,并在右邊屬性編輯欄修改窗體的name值為“BaseMainWind。如下圖:
此時,左邊樹形中對應的主窗體也會跟著改變名字,如下圖:
4.2修改控件的屬性
依照同樣的方法,在右邊的編輯框修改對應控件的屬性。
文本編輯框wxTextCtrl的name屬性修改為“text_main”,文字標簽wxStaticText的label屬性修改為“主窗口測試”,和按鍵wxButton的label屬性修改為“清空”,按鍵wxButton的name屬性修改為“button_main”。
剩下name屬性的直接使用默認的好了。
修改完只有應該如下圖所示:
5、 添加控件的觸發(fā)事情函數(shù)
當按鈕被按下時,咱們應該觸發(fā)一個函數(shù),將文本框里的內(nèi)容清空。所以,應該給按鈕控件添加一個觸發(fā)按下之后應該使用的處理函數(shù)。
點擊選中按鈕控件button_main,在右邊的屬性編輯框,點擊上面的另外一個標簽“Events”。添加一個給“OnButtonClick”的處理函數(shù)名:main_button_click。如下圖:
6、測試窗體內(nèi)容。
窗體設計基本完事了,咱們現(xiàn)在稍微測試一個窗體的樣子。按下F5,彈出對話框后點擊確定。這樣就wxformbuilder簡單將咱們設計的窗體編譯C++的顯示方法,顯示出窗體的樣子。如下圖:
由于咱們沒有制定主窗口的大小,也沒有拖動窗口。所以直接套用默認值就是這樣的以適合控件布局為大小的窗口。但是,不妨礙咱們做測試。
7、保存給python用的代碼。
點擊選中左邊樹形圖的最上面的圖標,即選中工程。
再點擊最下面標簽的python,即可出現(xiàn)在wxPython的代碼了。如下圖:
此時,全選上面的代碼。右鍵,【Copy】。
新建一個py源文件,并將全部代碼粘貼進去,保存名為basewin.py的python代碼源文件。
至此,wxPython代碼就已經(jīng)生成完畢了,請不要輕易變動文件里的代碼。下面就是咱們調用窗體的主要邏輯代碼了。
8、編輯邏輯代碼
將邏輯代碼保存為main_win.py
#!/usr/bin/env python# -*- coding: utf-8 -*-import wximport basewin# 首先,咱們從剛剛源文件中將主窗體繼承下來.就是修改過name屬性的主窗體咯。class MianWindow(basewin.baseMainWindow): # 咱們給個初始化函數(shù),將文本框初始填有‘主窗口測試’幾個字 # 不能直接覆蓋原有__ini__方法,這樣會導致窗體啟動失敗。咱們新建一個,然后再調用 def init_main_window(self): self.text_main.SetValue('主窗口測試') # 將點擊按鈕清空文本框的,功能寫成函數(shù) def main_button_click(self, event): self.text_main.Clear()if __name__ == '__main__': app = wx.App() # None表示的是此窗口沒有上級父窗體。如果有,就直接在父窗體代碼調用的時候填入‘self’就好了。 main_win = MianWindow(None) main_win.init_main_window() main_win.Show() app.MainLoop()
將上面的邏輯代碼保存為main_win.py,并跟剛剛生成那個basewin.py,放在同一個目錄里。再給main_win.py可執(zhí)行的權限。
chmod +x main_win.py./main_win.py
然后就能運行界面了,試一試點擊哪個【清空】按鈕。是不是輸入框里的文字消失了。
騰訊視頻官方版 | 45.34MB
愛奇藝視頻官方正式版 | 35.10MB
暴風影音最新版下載 | 50.3MB
QQ音樂官方正式版 | 24.2MB
酷狗音樂2022下載 | 37MB