मैं अपने कोड से मैन्युअल रूप से एक विशिष्ट ईवेंट कैसे कॉल कर सकता हूं?wxPython: मैन्युअल रूप से किसी ईवेंट को कॉल करना
उत्तर
शामिल करें।
long running tasks on the wxPython wiki के लिए अन्य धागे से ईवेंट पोस्ट करने के बारे में कुछ जानकारी भी है।
आपका मतलब है कि आप एक ईवेंट प्रेषण चाहते हैं?
:: wxPostEvent शून्य wxPostEvent (wxEvtHandler * गंतव्य, wxEvent & घटना)
एक जीयूआई आवेदन में, इस समारोह पदों निर्दिष्ट गंतव्य wxEvtHandler :: AddPendingEvent का उपयोग कर ऑब्जेक्ट के लिए घटना। अन्यथा, यह तुरंत wxEvtHandler :: ProcessEvent का उपयोग कर ईवेंट भेजता है। विवरण (और चेतावनी) के लिए संबंधित दस्तावेज़ीकरण देखें।
मुझे लगता है कि आप wx.PostEvent चाहते फ़ाइलों
<wx/app.h>
पुराना विषय, लेकिन मुझे लगता है कि मुझे इसके बारे में लंबे समय तक भ्रमित होने के बाद यह पता चला है, इसलिए यदि कोई और यहां उत्तर की तलाश में आता है, तो इससे मदद मिल सकती है।
मैन्युअल एक घटना पोस्ट करने के लिए (, wxPython डॉक्स here wxWidgets डॉक्स here)
या
wx.PostEvent(self.GetEventHandler(), event)
(wxWidgets docs, wxPython docs)
आप
self.GetEventHandler().ProcessEvent(event)
उपयोग कर सकते हैं, जहां event
वह ईवेंट है जिसे आप पोस्ट करना चाहते हैं। उदाहरण के साथ घटना का निर्माण
wx.PyCommandEvent(wx.EVT_BUTTON.typeId, self.GetId())
यदि आप EVT_BUTTON ईवेंट पोस्ट करना चाहते हैं। इसे PyCommandEvent बनाना मतलब है कि यह ऊपर की ओर प्रचार करेगा; अन्य घटना प्रकार डिफ़ॉल्ट रूप से प्रचार नहीं करते हैं।
आप कस्टम ईवेंट भी बना सकते हैं जो आप चाहते हैं कि जो भी डेटा ले जा सकते हैं। यहाँ एक उदाहरण है:।!
myEVT_CUSTOM = wx.NewEventType()
EVT_CUSTOM = wx.PyEventBinder(myEVT_CUSTOM, 1)
class MyEvent(wx.PyCommandEvent):
def __init__(self, evtType, id):
wx.PyCommandEvent.__init__(self, evtType, id)
myVal = None
def SetMyVal(self, val):
self.myVal = val
def GetMyVal(self):
return self.myVal
(मुझे लगता है मैं एक मेलिंग सूची संग्रह कहीं में इस कोड को पाया लगता है, लेकिन मैं इसे फिर से खोजने के लिए नहीं कर पा रहे यह आपके उदाहरण है, तो धन्यवाद कोई टिप्पणी दें और ले कृपया इसके लिए क्रेडिट!)
तो अब, एक कस्टम घटना पोस्ट करने के लिए:
event = MyEvent(myEVT_CUSTOM, self.GetId())
event.SetMyVal('here is some custom data')
self.GetEventHandler().ProcessEvent(event)
और आप इसे किसी भी अन्य घटना
self.Bind(EVT_CUSTOM, self.on_event)
तरह बाध्य कर सकते हैं और ईवेंट हैंडलर में कस्टम डेटा प्राप्त
def on_event(self, e):
data = e.GetMyVal()
print 'custom data is: {0}'.format(data)
या ईवेंट कन्स्ट्रक्टर में कस्टम डेटा शामिल करें और एक चरण सहेजें:
class MyEvent(wx.PyCommandEvent):
def __init__(self, evtType, id, val = None):
wx.PyCommandEvent.__init__(self, evtType, id)
self.myVal = val
आदि
आशा इस किसी के लिए उपयोगी है।
एक सरल, सीधा (http://wiki.wxpython.org/CustomEventClasses देखें) wxPython के हाल के संस्करणों के साथ यह करने के लिए तरीका उपलब्ध नहीं है:
# create event class
import wx.lib.newevent
SomeNewEvent, EVT_SOME_NEW_EVENT = wx.lib.newevent.NewEvent()
# post it, with arbitrary data attached
wx.PostEvent(target, SomeNewEvent(attr1=foo, attr2=bar))
# bind it as usual
target.Bind(EVT_SOME_NEW_EVENT, target.handler)
- 1. मैन्युअल रूप से एक ईवेंट हैंडलर को कॉल करना
- 2. सी # में मैन्युअल रूप से किसी ईवेंट को कैसे कॉल करें?
- 3. नियंत्रक मैन्युअल रूप से किसी निश्चित फ़ील्ड
- 4. हाइबरनेट: अनुक्रम जेनरेटर को मैन्युअल रूप से कॉल करें?
- 5. कॉल ड्रॉपडाउन सूची चयनित इंडेक्स मैन्युअल रूप से बदल गया
- 6. मार्शल मैन्युअल रूप से
- 7. मैन्युअल रूप से
- 8. मैन्युअल रूप से प्रेषण DOMContentLoaded
- 9. पाइथन मैन्युअल रूप से
- 10. मैन्युअल रूप से devise
- 11. मैन्युअल रूप से आईडी
- 12. मैन्युअल रूप से उन्हें
- 13. सीईडीईटी: मैन्युअल रूप से टैग्स को संग्रहीत करना
- 14. जावा बाध्यकारी बनाम कक्षाओं को मैन्युअल रूप से परिभाषित करना
- 15. मैन्युअल रूप से कॉमप्रेट
- 16. मैन्युअल रूप से jquery keyup ट्रिगर करें?
- 17. JQuery डेटपिकर, ईवेंट को मैन्युअल रूप से चयन करें पर ट्रिगर नहीं कर सकता!
- 18. गिटब मुद्दे को मैन्युअल रूप से
- 19. मैन्युअल रूप से सी # ऑब्जेक्ट्स
- 20. जावास्क्रिप्ट मैन्युअल रूप से फायरिंग .ऑनचेंज() इवेंट
- 21. मैन्युअल रूप से पेज_PreInit ईवेंट को वायरिंग कर रहा है, ऑटोएवेंटवायरअप को
- 22. मैन्युअल रूप से संदर्भ जोड़ें
- 23. क्या जावास्क्रिप्ट के ऑनसममिट ईवेंट को प्रोग्राम पर प्रोग्राम रूप से कॉल करना संभव है?
- 24. ggplot2: मैन्युअल रूप से स्केल_एरिया
- 25. मैन्युअल रूप से नई पंक्ति
- 26. फ़ंक्शन से किसी ईवेंट को लौटाना
- 27. Knockout.js: मैन्युअल रूप से गणना
- 28. WxPython
- 29. PHP कर्ल: मैन्युअल रूप से सामग्री-लंबाई शीर्षलेख सेट करना
- 30. WIF मैन्युअल रूप से federationmetadata.xml
मैं सी पता नहीं है, यह भ्रामक है। क्या आप मुझे पाइथन लाइन दे सकते हैं जिसे मैं दौड़ना चाहता हूं? –
मुझे लगता है कि यह वही है। wx.core.PostEvent? जांचें: http://www.google.com/codesearch?q=wxPostEvent&hl=hi&btnG=Search+Code –
मुझे इसे मुख्य Wx नेमस्पेस में नहीं देखा गया है, न ही ईवेंट के नामस्थान में। –