में कीबोर्ड घटनाओं को कैप्चर करें। मैं wx.Frame के अंदर होने वाली कीबोर्ड घटनाओं को कैप्चर करने का प्रयास कर रहा हूं, और मैं निम्न कोडों को उन घटनाओं को कैप्चर करने की अपेक्षा करता हूं। हालांकि, हैंडलर OnKeyDown कहा जाता है कभी नहीं है जब मैं कोड चलाएँ:wxpython wx.frame
import logging as log
import wx
class MainWindow(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(200,100))
self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
self.Bind(wx.EVT_KEY_UP, self.OnKeyDown)
self.Bind(wx.EVT_CHAR, self.OnKeyDown)
self.SetFocus()
self.Show(True)
def OnKeyDown(self, event=None):
log.debug("OnKeyDown event %s" % (event))
if __name__ == "__main__":
app = wx.App(False)
gui = MainWindow(None, "test")
app.MainLoop()
किसी को ऐसा करने के तरीके हैं, मैं कुछ मदद की सराहना करेंगे।
मैंने इस बदलाव को करने का प्रयास किया, और लॉगिंग पैकेज का उपयोग करने का भी प्रयास नहीं किया - बस प्रिंट करें। न तो परिवर्तन किया। – Kevin
@ केविन, क्या आपका मतलब है कि आपके उत्तर में कोड काम करता है और आपके प्रश्न में से कोई एक या मेरा जवाब लॉगिंग को समाप्त नहीं करता है? आप क्या एसओ, पायथन और wxPython संस्करण का उपयोग कर रहे हैं? यह Win7 और winXP, पायथन 2.6, wxpython 2.8.11 और 2.8.12 – joaquin
में परीक्षण किया गया है, मैं उबंटू 11.04 64 बिट का उपयोग कर रहा हूं, जैसा कि ऐसा लगता है कि आप पहले से ही कम कर चुके हैं। तो यह ओएस पर आधारित एक quirk है, लेकिन फ्रेम में पैनल जोड़ना एक आसान काम है। – Kevin