wxpython中文教程之交互式按钮

发布时间:2020-01-03编辑:脚本学堂
有关wxpython中交互式按钮的操作实例,在wxpython中编写一个交互式按钮怎么实现,wxpython中文教程学习,需要的朋友参考下。

python编写一个交互式按钮的. 该按钮对用户行为做出反应.

在例子中,在将鼠标指针移到按钮部件所在区域时,EVT_ENTER_WINDOW 事件便会产生,按钮据此改变它的背景颜色.

同样的,鼠标指针移出部件区域时,EVT_LEAVE_WINDOW 事件便会产生.

因此,需要将这两个事件绑定到方法函数(function)上. 有其来适当地改变按钮的颜色或者形状.

专题:wxpython中文教程

例子:
 

复制代码 代码示例:

#!/usr/bin/python
#coding=utf-8

#interactivebutton.py

import wx
from wxPython.lib.buttons import wxGenButton


class MyPanel(wx.Panel):
    def __init__(self, parent, ID):
        wx.Panel.__init__(self, parent, ID, wx.DefaultPosition)
       
        self.btn = wxGenButton(self, -1, "按钮",
                               pos=wx.Point(125, 100), size=(-1, -1))
        self.btn.SetBezelWidth(1)
        self.btn.Bind(wx.EVT_ENTER_WINDOW, self.OnEnterButton)
        self.btn.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveButton)
       
    def OnEnterButton(self, event):
        self.btn.SetBackgroundColour(wx.Color(128, 128, 128))
        self.btn.Refresh()
       
    def OnLeaveButton(self, event):
        self.btn.SetBackgroundColour(wx.Color(212, 208, 200))
        self.btn.Refresh()

class MyApp(wx.App):
    def OnInit(self):
        frame = wx.Frame(None, -1, 'interactivebutton.py',
                         wx.DefaultPosition, wx.Size(350, 300))
        mypanel = MyPanel(frame, -1)
        frame.Center()
        frame.Show(True)
        self.SetTopWindow(frame)
        return True
   
app = MyApp(0)
app.MainLoop()

以上例子中,使用了 wx.GenButton,而不是基本的 wx.Button.
wx.GenButton 允许改变边框设置,当然 wx.Button 也可以很好地工作。