国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

wxPython事件驅動實例詳解

2020-02-23 05:52:46
字體:
來源:轉載
供稿:網友

本文實例講述了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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 温泉县| 双辽市| 英山县| 陕西省| 吉林省| 阆中市| 莱西市| 邢台县| 金川县| 吉林市| 桓仁| 四子王旗| 永兴县| 浮山县| 营口市| 曲沃县| 昂仁县| 湘乡市| 介休市| 延边| 广灵县| 铜陵市| 剑阁县| 潞城市| 托克逊县| 醴陵市| 合作市| 和顺县| 怀仁县| 曲周县| 泰顺县| 郓城县| 闽清县| 昌图县| 达日县| 铜陵市| 吕梁市| 正镶白旗| 宁武县| 镇坪县| 亚东县|