Wxpython 简明教程

wxPython - GUI Builder Tools

通过手动编码创建出色的 GUI 可能很繁琐。一个可视化 GUI 设计器工具总是很方便的。针对 wxPython 的许多 GUI 开发 IDE 都可用。下面是其中一些 −

  1. wxFormBuilder

  2. wxDesigner

  3. wxGlade

  4. BoaConstructor

  5. gui2py

wxFormBuilder 是一个开源、跨平台的所见即所得 (WYSIWYG) GUI 构建器,可以将 wxWidget GUI 设计转换为 C++、Python、PHP 或 XML 格式。此处给出了有关 wxFormBuilder 用法的简要介绍。

首先,需要从 http://sourceforge.net/projects/wxformbuilder/. 下载并安装 wxFormBuilder 的最新版本。打开应用程序后,会出现一个新项目,中间有一个空白灰色区域。

为项目提供一个合适的名称,并将 Python 选择为代码生成语言。这是在对象属性窗口中完成的,如下图所示 −

object properties

然后,从组件选板的“Forms”选项卡,选择 Frame。

frame

从“Layouts”选项卡添加垂直的 wxBoxSizer。

wxboxsizer

在 Box 中添加带有合适标题的必要控件。在此,添加了一个 StaticText(标签)、两个 TextCtrl 对象(文本框)和一个 wxButton 对象。框架类似于以下图片:

add controls

对这三个控件启用“Expand and Stretch”。在 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()

上述代码生成以下输出 -

tools output