最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

wxpython中自定義事件的實現(xiàn)與使用方法分析

 更新時間:2016年07月21日 12:30:27   作者:lee  
這篇文章主要介紹了wxpython中自定義事件的實現(xiàn)與使用方法,結合實例形式詳細分析了wxpython中自定義事件的創(chuàng)建步驟與使用方法,需要的朋友可以參考下

本文實例講述了wxpython中自定義事件的實現(xiàn)與使用方法。分享給大家供大家參考,具體如下:

創(chuàng)建自定義事件的步驟:

① 定義事件類,該事件類必須繼承自wx.PyCommandEvent,并定義get和set方法來獲取和設置事件參數。

② 創(chuàng)建一個事件類型和一個綁定器對象去綁定該事件到特定的對象。

③ 創(chuàng)建自定義事件對象,設置事件參數,并且使用ProcessEvent()方法將這個實例引入事件處理系統(tǒng)。

④ 綁定自定義事件的event handler。

⑤ 在event handler中響應事件。

示例代碼:

#!/usr/bin/env python
#coding=utf-8
import wx
class MyTestEvent(wx.PyCommandEvent):  #1 定義事件
  def __init__(self, evtType, id):
    wx.PyCommandEvent.__init__(self, evtType, id)
    self.eventArgs = ""
  def GetEventArgs(self):
    return self.eventArgs
  def SetEventArgs(self, args):
    self.eventArgs = args
myEVT_MY_TEST = wx.NewEventType() #2 創(chuàng)建一個事件類型
EVT_MY_TEST = wx.PyEventBinder(myEVT_MY_TEST, 1) #3 創(chuàng)建一個綁定器對象
class MyFrame(wx.Frame):
  def __init__(self):
    wx.Frame.__init__(self, None, -1, "My Frame", size=(300, 300),pos=(300,300))
    panel = wx.Panel(self, -1)
    self.button1 = wx.Button(panel,id=-1,pos=(40, 40),label="button1")
    self.Bind(wx.EVT_BUTTON, self.OnButton1Click, self.button1)
    self.Bind(EVT_MY_TEST, self.OnHandle)# 4綁定事件處理函數
  def OnButton1Click(self,event):
    self.OnDoTest()
  def OnHandle(self,event):#8 事件處理函數
    dlg = wx.MessageDialog(self, event.GetEventArgs(),'A Message Box',wx.OK | wx.ICON_INFORMATION)
    dlg.ShowModal()
    dlg.Destroy()
  def OnDoTest(self):
    evt = MyTestEvent(myEVT_MY_TEST, self.button1.GetId()) #5 創(chuàng)建自定義事件對象
    evt.SetEventArgs("test event")  # 6添加數據到事件
    self.GetEventHandler().ProcessEvent(evt) #7 處理事件
if __name__ == '__main__':
  app = wx.PySimpleApp()
  frame = MyFrame()
  frame.Show(True)
  app.MainLoop()

說明:

1.定義MyTestEvent 類為wx.PyCommandEvent的子類,wx.PyCommandEvent是wxPython特定的結構,可以用來創(chuàng)建新的事件類并且可以把C++類和你的Python代碼連接起來。

2. wx.NewEventType()類似于wx.NewId();它返回一個唯一的事件類型ID。

3.創(chuàng)建一個綁定器對象,第二個參數的取值位于[0,2]之間,它代表wxId標識號,該標識號用于wx.EvtHandler.Bind()方法去確定哪個對象是事件的源。

4.綁定事件的處理器。

5. 創(chuàng)建自定義事件對象,并把觸發(fā)事件的控件的ID作為參數傳給MyTestEvent的構造函數。

6.添加數據給事件。可以將一些您需要的信息通過這種方法傳遞進去。

7. ProcessEvent()的調用將這個新事件引入到事件處理系統(tǒng)中,GetEventHandler()調用返回wx.EvtHandler的一個實例,也就是窗口對象本身,即:MyFrame。

8.綁定事件處理函數,這里的事件處理方式是通過MessageDialog顯示出傳入的事件參數。

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • 在pycharm中顯示python畫的圖方法

    在pycharm中顯示python畫的圖方法

    今天小編就為大家分享一篇在pycharm中顯示python畫的圖方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python列表推導式的使用方法

    Python列表推導式的使用方法

    這篇文章主要介紹了Python列表推導式的使用方法,大家參考使用吧
    2013-11-11
  • python接口自動化測試之接口數據依賴的實現(xiàn)方法

    python接口自動化測試之接口數據依賴的實現(xiàn)方法

    這篇文章主要介紹了python接口自動化測試之接口數據依賴的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 深入探討PythonLogging模塊的高級用法與性能優(yōu)化

    深入探討PythonLogging模塊的高級用法與性能優(yōu)化

    在Python應用程序中,日志處理是一項至關重要的任務,本文將探索Logging模塊的高級用法,包括日志級別、格式化、處理程序等方面的功能,需要的可以參考下
    2024-04-04
  • 如何使用PyCharm將代碼上傳到GitHub上(圖文詳解)

    如何使用PyCharm將代碼上傳到GitHub上(圖文詳解)

    這篇文章主要介紹了如何使用PyCharm將代碼上傳到GitHub上(圖文詳解),文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • python數據預處理之數據標準化的幾種處理方式

    python數據預處理之數據標準化的幾種處理方式

    這篇文章主要介紹了python數據預處理之數據標準化的幾種處理方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Linux 修改Python命令的方法示例

    Linux 修改Python命令的方法示例

    這篇文章主要介紹了Linux 修改Python命令的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Pytest單元測試框架如何實現(xiàn)參數化

    Pytest單元測試框架如何實現(xiàn)參數化

    這篇文章主要介紹了Pytest單元測試框架如何實現(xiàn)參數化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • 如何在pycharm中安裝第三方包

    如何在pycharm中安裝第三方包

    這篇文章主要介紹了如何在pycharm中安裝第三方包,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • Django中的用戶身份驗證示例詳解

    Django中的用戶身份驗證示例詳解

    這篇文章主要給大家介紹了關于Django中用戶身份驗證的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用SQL Django具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08

最新評論

北川| 行唐县| 庆城县| 郧西县| 江山市| 陵水| 岳普湖县| 行唐县| 宁蒗| 抚远县| 长汀县| 广灵县| 凯里市| 金溪县| 开化县| 司法| 盐津县| 文昌市| 富平县| 沾化县| 南涧| 松滋市| 沧州市| 漯河市| 延安市| 昔阳县| 翁牛特旗| 宝清县| 福州市| 洛南县| 洪泽县| 仙居县| 北安市| 双城市| 延吉市| 崇明县| 芜湖县| 靖江市| 永春县| 集贤县| 东乡族自治县|