首頁 後端開發 Python教學 wxpython中自訂事件的實作與使用方法分析

wxpython中自訂事件的實作與使用方法分析

May 16, 2018 pm 04:27 PM
wxpython 自訂事件

本文實例講述了wxpython中自訂事件的實作與使用方法。分享給大家供大家參考,具體如下:

創建自訂事件的步驟:

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

② 建立一個事件類型和一個綁定器物件去綁定該事件到特定的物件。

③ 建立自訂事件對象,設定事件參數,並且使用ProcessEvent()方法將這個實例引入事件處理系統。

④ 綁定自訂事件的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 创建一个事件类型
EVT_MY_TEST = wx.PyEventBinder(myEVT_MY_TEST, 1) #3 创建一个绑定器对象
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 创建自定义事件对象
    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.PyCommandEventEventa並且可以把C++類別和你的Python程式碼連結起來。

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

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

4.綁定事件的處理器。

5. 建立自訂事件對象,並將觸發事件的控制項的ID作為參​​數傳給MyTestEvent的建構子。

6.新增資料給事件。可以將一些您需要的資訊透過這種方法傳遞進去。

7. ProcessEvent()的呼叫將這個新事件引入到事件處理系統中,GetEventHandler()呼叫傳回wx.EvtHandler的一個實例,也就是視窗物件本身,即:MyFrame。

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

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Python GUI程式設計:快速上手,輕鬆打造互動式介面 Python GUI程式設計:快速上手,輕鬆打造互動式介面 Feb 19, 2024 pm 01:24 PM

Python GUI程式設計:快速上手,輕鬆打造互動式介面

VUE3基礎教學:使用Vue.js自訂事件 VUE3基礎教學:使用Vue.js自訂事件 Jun 15, 2023 pm 09:43 PM

VUE3基礎教學:使用Vue.js自訂事件

Python中的GUI庫wxPython詳解 Python中的GUI庫wxPython詳解 Jun 09, 2023 pm 10:00 PM

Python中的GUI庫wxPython詳解

Python GUI程式設計 GUI程式設計:讓你的程式脫穎而出 Python GUI程式設計 GUI程式設計:讓你的程式脫穎而出 Feb 19, 2024 pm 08:33 PM

Python GUI程式設計 GUI程式設計:讓你的程式脫穎而出

Python中的GUI函式庫有哪些選擇? Python中的GUI函式庫有哪些選擇? Oct 27, 2023 pm 03:10 PM

Python中的GUI函式庫有哪些選擇?

Python GUI程式設計的藝術:打造美觀易用的介面 Python GUI程式設計的藝術:打造美觀易用的介面 Feb 19, 2024 pm 05:36 PM

Python GUI程式設計的藝術:打造美觀易用的介面

Python GUI程式設計:從入門到精通 Python GUI程式設計:從入門到精通 Feb 20, 2024 am 10:50 AM

Python GUI程式設計:從入門到精通

揭秘Python GUI程式設計的神奇世界 揭秘Python GUI程式設計的神奇世界 Feb 20, 2024 am 10:30 AM

揭秘Python GUI程式設計的神奇世界

See all articles