设为首页 加入收藏

TOP

wxpython 编程触发菜单或按钮事件
2017-09-30 16:46:35 】 浏览:2110
Tags:wxpython 编程 触发 菜单 按钮 事件

最近逐步熟悉wxpython,编写了几个小小功能的GUI程序,GUI中免不了会有在代码中触发控件事件的业务需求。在其他Gui界面的语言中有postevent、triggerevent 调用事件名称的函数,非常方便。

在wxpython里如何解决呢,上一段简单的代码。

class frame(wx.Frame):
    ID_Help = wx.NewId()
     def  __init__(self, frame):
        super(TaskBarIcon, self). __init__()
        self.frame = frame
        self.Bind(wx.EVT_MENU, self.OnHelp, id=self.ID_Help)
        ……
        self.Bind(wx.EVT_CHECKBOX, self.OnShowDetail, self.cbxShowDetail)
        self.Bind(wx.EVT_BUTTON, self.OnPrint, self.btnPrint)
    ……
     def CreatePopupMenu(self):
        menu = wx.Menu()
        menu.Append(self.ID_Help,u'帮助&F1')
        return menu
……
def ShowMain():
     # 触发菜单事件,id=self. ID_Help
    iRet = wx.PostEvent(self,wx.CommandEvent(wx.EVT_MENU.typeId,self.ID_Help))
     return iRet

def PrintMain():
     # 触发按钮事件,id=self. btnPrint.GetId()
    #相当于执行了btnPrint所绑定的事件OnPrint ()事件。
    iRet = wx.PostEvent(self,wx.CommandEvent(wx.EVT_BUTTON.typeId,self.btnPrint .GetId()))
     return iRet

def PrintMain():
     # 触发checkbox事件,id=self. cbxShowDetail.GetId()
    #相当于执行了cbxShowDetail所绑定的事件OnShowDetail()事件。
    self.cbxShowDetail.SetValue(True)
    iRet = wx.PostEvent(self,wx.CommandEvent(wx. EVT_CHECKBOX .typeId,self.cbxShowDetail .GetId() ))
     return iRet
    

 


解释:

 wx.PostEvent(self ,wx.CommandEvent(wx.EVT_CHECKBOX.typeId,self.cbxShowDetail.GetId()))

参数1 ,self代表处理postevent的窗口句柄。

参数2 ,event = wx.CommandEvent( eventtype, eventid)
eventtype 分别为wx.evt_menu ,wx.evt_button, wx.evt_checkboxx。

eventid 为事件的所绑定的控件id 

 

以上。

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python Django中QQ邮箱授权码问题 下一篇Python Tool Visual Studio简单使..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目