wxPython Button按钮的用法

2024年04月03日 Python教程 Python51

wxPython Button按钮的用法

Button 元素的主要属性包括上面的文字 label、单击后的处理函数等。下面是其初始化函数的定义:

Button(parent,
       id=ID_ANY,
       label=EmptyString,             # 按钮上显示的内容
       pos=DefaultPosition,
       size=DefaultSize,
       style=0,
       validator=DefaultValidator,
       name=ButtonNameStr)

处理函数通过其成员函数 Bind() 来定义,该函数的定义如下:

Bind(self, event, handler, source=None, id=-1, id2=-1)

其中 event 和 handler 是必须定义的,其他的可以不用填写。source 表示事件的发起者,id 表示事件发起者的 ID,id2 用来指定事件发起者的 ID 范围。

下面是一个按钮使用的例子,其窗口有一个按钮,单击该按钮,按钮上的文字发生变化,显示被单击的次数。下面是完整的代码:

import wx
# 主窗口类
class MainFrame(wx.Frame):            # 记住一定要从wx.Frame派生出主窗口类
  def __init__(self, p, t):
    """ p: 父亲窗口
    t:  窗口标题
    """
    wx.Frame.__init__(self, id=wx.NewId(), parent=p, title=t, size=
           (300, 100))
    # 该panel的父亲就是该窗口, id=-1就表示任意ID
    panel = wx.Panel(self, -1)
    self.button = wx.Button(panel, -1, u"单击我", pos=(50, 20))
    # 绑定事件,就是指定的button被单击后调用onClick()成员函数
    self.Bind(wx.EVT_BUTTON, self.OnClick, self.button)
    self.button.SetDefault()
    self.clicked_times = 0
  def OnClick(self, event):
    self.clicked_times = self.clicked_times + 1
    # 一旦单击就修改按钮的显示文字
    self.button.SetLabel(u"单击成功(%d)" % self.clicked_times)
if __name__ == "__main__":
    # 创建应用程序
    app = wx.App(False)
    # frame就是应用程序的主窗口
    frame = MainFrame(None, "button演示")
    frame.Show(True)                 # 显示该窗口
    app.MainLoop()                    # 进入消息循环

运行该程序,显示如图 1 所示的窗口。

图 1 普通按钮

单击窗口上的“单击我”按钮后,显示如图 2 所示。

图 2 单击按钮后的窗口

本文链接:http://so.lmcjl.com/news/1013/

展开阅读全文