国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 锦屏县| 曲周县| 鸡泽县| 资源县| 定州市| 伊宁市| 措勤县| 和硕县| 香格里拉县| 云浮市| 菏泽市| 崇文区| 江陵县| 定西市| 平舆县| 门头沟区| 吉水县| 遂溪县| 绵竹市| 志丹县| 喀喇| 开远市| 两当县| 资溪县| 黎川县| 边坝县| 扶沟县| 安泽县| 江口县| 秭归县| 都匀市| 东乡族自治县| 塔城市| 寿宁县| 禄丰县| 若羌县| 乳山市| 平邑县| 宜良县| 建湖县| 岳池县|