本文实例讲述了wxPython的事件驱动机制,分享给大家供大家参考。具体方法如下:
先来看看如下代码:
#!/usr/bin/python # moveevent.py import wx #导入wx库 class MoveEvent(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size=(250, 180)) #窗口大小为(250, 180) wx.StaticText(self, -1, 'x:', (10,10))#parent, id, title, point wx.StaticText(self, -1, 'y:', (10,30)) self.st1 = wx.StaticText(self, -1, '', (30, 10)) self.st2 = wx.StaticText(self, -1, '', (30, 30)) self.Bind(wx.EVT_MOVE, self.OnMove) #绑定Frame的move事件 self.Centre() self.Show(True) def OnMove(self, event): x, y = event.GetPosition() self.st1.SetLabel(str(x)) self.st2.SetLabel(str(y)) app = wx.App()#生成应用程序 MoveEvent(None, -1, 'move event')#调用自己的类,三个参数为:parent, id , title app.MainLoop()#应用程序事件循环
程序运行效果如下图所示:
wxStaticText的两个构造函数官方文档如下:
wxStaticText ()
Default constructor.
wxStaticText (wxWindow *parent, wxWindowID id, const wxString &label, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString&name=wxStaticTextNameStr)
Constructor, creating and showing a text control.
The event parameter in the OnMove() method is an object specific to a particular event type. In our case it is the instance of a wx.MoveEvent class. This object holds information about the event. For example the Event object or the position of the window. In our case the Event object is the wx.Frame widget. We can find out the current position by calling the GetPosition() method of the event.
OnMove()方法中的event参数是一种特殊的事件类型,在我们的例子中,它是wx.MoveEvnet类的一个实例.这个对象保存了事件的一些信息,比如这个事件对象或者窗口的位置.在我们例子中事件对象是一个wx.Frame控件.我们可以通过调用事件对象的GetPosition()得到当前位置信息.
Vetoing events
Sometimes we need to stop processing an event. To do this, we call the method Veto().
#!/usr/bin/python # veto.py import wx class Veto(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size=(250, 200)) self.Bind(wx.EVT_CLOSE, self.OnClose) self.Centre() self.Show(True) def OnClose(self, event): dial = wx.MessageDialog(None, 'Are you sure to quit?', 'Question', wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION) ret = dial.ShowModal() if ret == wx.ID_YES: self.Destroy() else: event.Veto() app = wx.App() Veto(None, -1, 'Veto') app.MainLoop()
希望本文所述对大家的Python程序设计有所帮助。
wxPython,事件,驱动
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]