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
以上。
wxpython 编程触发菜单或按钮事件的更多相关文章
- asp.net的TextBox回车触发指定的按钮事件
一; event.returnValue = false; document.all[button].click(); } } ...
- Android中Touch事件分析--解决HorizontalScrollView滑动和按钮事件触发问题
之前写过关于HorizontalScrollView滑动和按钮事件触发问题,但是不能所有的情况,最近几天一直在想这个问题,今天有一个比较好的解决思路,最终应用在项目里面效果也很好,首先说明一下功能: ...
- JavaScript点击事件-一个按钮触发另一个按钮
<input type="button" value="Click" id="C" onclick="Go();" ...
- java swing 按钮事件触发两次或者多次
按钮事件触发多次? 如果是JButton,八成是由于粗心,多次添加了监听事件 保持只添加一个监听事件就解决了~
- 菜单和按钮-EasyUI Menu 菜单、EasyUI Linkbutton 链接按钮、EasyUI Menubutton 菜单按钮、EasyUI Splitbutton 分割按钮
EasyUI Menu 菜单 通过 $.fn.menu.defaults 重写默认的 defaults. 菜单(Menu)通常用于上下文菜单.它是创建其他菜单组件(比如:menubutton.spli ...
- Android开发系列之按钮事件的4种写法
经过前两篇blog的铺垫,我们今天热身一下,做个简单的例子. 目录结构还是引用上篇blog的截图. 具体实现代码: public class MainActivity extends Activity ...
- 关于Eclipse插件开发(四)-------给视图加下拉菜单和按钮和加入编辑器.
本例将给视图加入下拉菜单和按钮,同时再为列表添加一个右键菜单. 创建ActionGroup类 加入菜单和按钮的方法与SWT和JFace组件的一样,先创建一个ActionGroup代码如下: MyAct ...
- 【温故而知新-万花筒】C# 异步编程 逆变 协变 委托 事件 事件参数 迭代 线程、多线程、线程池、后台线程
额基本脱离了2.0 3.5的时代了.在.net 4.0+ 时代.一切都是辣么简单! 参考文档: http://www.cnblogs.com/linzheng/archive/2012/04/11/2 ...
- Android按钮事件的4种写法
经过前两篇blog的铺垫,我们今天热身一下,做个简单的例子. 目录结构还是引用上篇blog的截图. 具体实现代码: public class MainActivity extends Activity ...
随机推荐
- java将System.out.println的输出导出到文件中
直接看代码 public static void saveStreamToFile(String savePath,String input){ try { //savePath like c:/lo ...
- 关于 AXI协议的学习解释说明
AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture ...
- Task.Factory.StartNew和Task.Run
在系统中单开线程进行操作,经常用到Task,发现Task主要有以下两种方法 Task.Factory.StartNew(() => { }); Task.Run(() => { }); 初 ...
- jar命令简单使用
以windows10操作系统,JDK1.8为例: 打包主要是针对class文件以及依赖的jar包. 1.编写MANIFEST.MF文件(详细可以上网查一下MANIFEST.MF文件规则.) 此文件主要 ...
- [转]NEO与以太坊:为什么NEO可能是2018年最强的加密货币
本文转自:https://baijiahao.baidu.com/s?id=1591291802129464257&wfr=spider&for=pc NEO,它可以与以太坊竞争吗?N ...
- 设计模式学习--面向对象的5条设计原则之接口隔离原则--ISP
一.ISP简介(ISP--Interface Segregation Principle): 使用多个专门的接口比使用单一的总接口要好.一个类对另外一个类的依赖性应当是建立在最小的接口上的.一个接口代 ...
- 用fullPage来实现全屏滚动效果
[注意]所有的page要用div包裹,id为fullpage.不能直接包在body中 [使用fullpage的步骤] 1.导入 JQuery.js,fullpage.js,fullpage.css ...
- C# 接口的隐式与显示实现及适应场景
通俗的来讲,“显示接口实现”就是使用接口名称作为方法名的前缀;而传统的实现方式称之为:“隐式接口实现”.废话不说,例子如下: interface IAnimal { void Dog(); } cla ...
- F#注解
不要问我为啥要学F#——因为气质摆在那里 标注:以下内容均来自 anderslly F#系列 1.类型推演 let square x = x * x //接受一个某类型参数的quare函数返回一个这个 ...
- maven配置Mac平台
Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录.例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven cl ...