में एक कस्टम कमांडइवेट उत्पन्न करें मेरी शीर्ष-स्तरीय विंडो को यह जानने की आवश्यकता है कि कस्टम नियंत्रण की आंतरिक स्थिति में परिवर्तन कब होता है ताकि यह जीयूआई के विभिन्न हिस्सों को अपडेट कर सके। मैं नियंत्रण में एक कस्टम इवेंट कैसे उत्पन्न करूं, इसलिए यह शीर्ष-स्तरीय विंडो द्वारा प्रसारित और संभाला जा सकता है?wxPython
wxPython
उत्तर
मैं जानता हूँ कि यह एक पुरानी है सवाल है, लेकिन WxPython में ऐसा करने के लिए एक नया, थोड़ा अच्छा, तरीका है। http://wiki.wxpython.org/CustomEventClasses और ऊपर से दूसरे शब्दों में बयान:
घटना को परिभाषित करने के लिए:
import wx.lib.newevent
QuantityChangedEvent, EVT_QUANTITY_CHANGED = wx.lib.newevent.NewCommandEvent()
एक घटना बनाने के लिए:
event = QuantityChangedEvent(self.GetId())
self.GetEventHandler().ProcessEvent(event)
# or ...
#wx.PostEvent(self, event)
घटना बाइंडिंग ही रहता है।
प्रचार करने के लिए, ईवेंट wx.CommandEvent होना चाहिए। (प्रसार के बारे में विवरण के लिए wxWidgets event handling overview देखें।) अधिक विशेष रूप से, यह wx.PyCommandEvent होना चाहिए, जो पाइथन-जागरूक है और WxWidgets ईवेंट सिस्टम के माध्यम से सुरक्षित रूप से अपने पायथन बिट्स को परिवहन करने में सक्षम है और ईवेंट हैंडलर का आह्वान होने पर उन्हें अभी भी वहां रखा जा सकता है ।
इस प्रकार अपने कस्टम घटना प्रकार निर्धारित करें:
EVT_QUANTITY_CHANGED = wx.PyEventBinder(wx.NewEventType(), 1)
आप शायद मॉड्यूल स्तर पर ऐसा करना चाहते हैं, हालांकि यह कुछ परिस्थितियों में आपके नियंत्रण से __init__
विधि में यह करने के लिए वांछनीय हो सकता है।
नियंत्रण इस प्रकार अब एक घटना उत्पन्न कर सकते हैं:
event = wx.PyCommandEvent(EVT_QUANTITY_CHANGED.typeId, self.GetId())
self.GetEventHandler().ProcessEvent(event)
उच्च-स्तरीय विंडो बाँध और हमेशा की तरह घटना को संभाल कर सकते हैं:
self.Bind(mycontrol.EVT_QUANTITY_CHANGED, self.OnQuantityChanged)
- 1. WxPython
- 2. WxPython
- 3. WxPython
- 4. wxpython
- 5. wxpython
- 6. wxpython
- 7. WxPython
- 8. WxPython
- 9. WxPython
- 10. wxpython
- 11. WXpython ट्यूटोरियल
- 12. wxPython, StaticText()
- 13. WxPython पैनल
- 14. wxpython wx.frame
- 15. WxPython ListCtrl
- 16. wx.NotificationMessage का उपयोग WxPython
- 17. wxPython प्रगति पट्टी
- 18. wxPython फ्रेम अक्षम/सक्षम?
- 19. ऑटो-प्राप्ति WxPython wxComboBox
- 20. एसक्यूएलकेमी और WxPython
- 21. wxPython WebView उदाहरण
- 22. क्या पाइथन या wxPython
- 23. चेरीपी और wxpython
- 24. WXPython या Tkinter
- 25. wxPython और Matplotlib
- 26. wxpython में resizable divider लाइन?
- 27. WxPython में फोकस-निम्न-माउस?
- 28. wxPython: wx.ListBox सूची अद्यतन करें
- 29. wxPython: TextCtrl को पैनल को कैसे भरें
- 30. wxPython: एक नोटबुक टैब अक्षम करें?