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 ...
随机推荐
- dephi(pascal)中修改Label字体的样式(加粗,斜体,下划线)
不废话,直接代码: Label1.Font.style:=[fsBold,fsItalic,fsUnderline]; //加粗.斜体,下划线
- 剑指offer63:数据流中的中位数
题目描述: 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值. ...
- lucene源码分析(8)MergeScheduler
1.使用IndexWriter.java mergeScheduler.merge(this, MergeTrigger.EXPLICIT, newMergesFound); 2.定义MergeSch ...
- SSL编程(1) 概述
文章来自本园马若望 SSL是TCP/IP环境上的标准的安全加密传输协议.SSL的全称是安全的 Socket层,它具有与Socket类似的客户端/服务器体制.常见的https即http+ssl,从安全的 ...
- 导出为shape文件
private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)//导出为s ...
- 修改MVC视图默认搜索规则(IViewEngine)
前几天我自己在写一个系统,写到后台管理系统的时候,我突然有个想法就是:想在区域视图下新建文件,单独处理后台一些业务:Area/AdminManager/View/Content/Index.cshtm ...
- 算法:QQ等级换算成皇冠太阳星星月亮
/// <summary> /// 等级换算成图标分布 /// 以QQ的形式计算 /// 2^(2*0) /1 /// 2^(2*1) /4 /// 2^(2*2) /16 ...
- 一文告诉你 Event Loop 是什么?
Event Loop 也叫做"事件循环",它其实与 JavaScript 的运行机制有关. JS初始设计 JavaScript 在设计之初便是单线程,程序运行时,只有一个线程存在, ...
- AGC006C Rabbit Exercise
传送门 设 \(f_{i,j}\) 表示兔子 \(i\) 在当前 \(j\) 轮的期望位置 对于一次操作 \(f_{i,j+1}=\frac{1}{2}(2f_{i-1,j}-f_{i,j})+\fr ...
- Vue双向绑定原理详解
前言:Vue最核心的功能之一就是响应式的数据绑定模式,即view与model任意一方改变都会同步到另一方,而不需要手动进行DOM操作,本文主要探究此功能背后的原理. 思路分析 以下是一个最简单的双向绑 ...