wxPython - GUI 構建工具



透過手動編碼建立美觀的 GUI 可能很繁瑣。一個視覺化的 GUI 設計器工具總是很方便。許多針對 wxPython 的 GUI 開發 IDE 可供使用。以下是一些:

  • wxFormBuilder
  • wxDesigner
  • wxGlade
  • BoaConstructor
  • gui2py

wxFormBuilder 是一個開源的、跨平臺的所見即所得 GUI 構建器,可以將 wxWidgets GUI 設計轉換為 C++、Python、PHP 或 XML 格式。這裡簡要介紹了 wxFormBuilder 的使用方法。

首先,需要從 http://sourceforge.net/projects/wxformbuilder/ 下載並安裝最新版本的 wxFormBuilder。開啟應用程式後,中心會出現一個帶有空白灰色區域的新專案。

為專案指定一個合適的名稱,並選擇 Python 作為程式碼生成語言。這在物件屬性視窗中完成,如下面的影像所示:

Object Properties

然後從元件面板的“窗體”選項卡中選擇“框架”。

Choose Frame

從“佈局”選項卡中新增一個垂直 wxBoxSizer。

Add wxBoxSizer

在框中新增必要的控制元件,並使用合適的標題。這裡,添加了一個 StaticText(標籤)、兩個 TextCtrl 物件(文字框)和一個 wxButton 物件。框架如下面的影像所示:

Add Controls

為這三個控制元件啟用“擴充套件”和“拉伸”。在 wxButton 物件的物件屬性中,為 OnButtonClick 事件分配函式 findsquare()。

Three Controls

儲存專案並按 F8 生成已開發 GUI 的 Python 程式碼。將生成的程式碼檔案命名為 Demo.py

在可執行的 Python 指令碼中,匯入 demo.py 並定義 FindSquare() 函式。宣告 Application 物件並啟動一個主事件迴圈。以下是可執行程式碼:

import wx 
  
#import the newly created GUI file 
import demo  
class CalcFrame(demo.MyFrame1): 
   def __init__(self,parent): 
      demo.MyFrame1.__init__(self,parent)  
		
   def FindSquare(self,event): 
      num = int(self.m_textCtrl1.GetValue()) 
      self.m_textCtrl2.SetValue (str(num*num)) 
        
app = wx.App(False) 
frame = CalcFrame(None) 
frame.Show(True) 
#start the applications 
app.MainLoop() 

以上程式碼產生以下輸出:

GUI Builder Output
廣告

© . All rights reserved.