【问题标题】:wxpython event handling: GetValue after key is pressedwxpython事件处理:按下键后的GetValue
【发布时间】:2013-12-04 07:20:45
【问题描述】:

每次更改此 TextCtrl 时,我都想获取 TextCtrl 的值。我的代码返回“旧”值(就像我按下键之前一样) - 但我想用我按下的键获取“新”值。 例如,当我的 TC 的值是“123”并且我添加了“4”时,我仍然返回“123”,但我想获得“1234”。

class pageThree(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent=parent,size=(800,600))
        self.pageThree=wx.Panel(self,size=(800,600))    
        self.TC = wx.TextCtrl(self.pageThree,-1,pos=(100,150),size=(60,20))
        self.TC.Bind(wx.EVT_KEY_DOWN, self.getValue)

    def getValue(self, event):
        print self.TC.GetValue()

因为我在这个 TC 中只使用整数,所以我尝试添加 + event.GetKeyCode() - 48,但是当我删除一个值而不是添加一个值时这不起作用 =/

【问题讨论】:

    标签: python event-handling wxpython wxwidgets


    【解决方案1】:

    您需要绑定到 wx.EVT_TEXT 而不是 wx.EVT_KEY_DOWN。请参阅以下示例:

    import wx
    
    ########################################################################
    class MyPanel(wx.Panel):
        """"""
    
        #----------------------------------------------------------------------
        def __init__(self, parent):
            """Constructor"""
            wx.Panel.__init__(self, parent)
    
            self.text = wx.TextCtrl(self)
            self.text.Bind(wx.EVT_TEXT, self.onText)
    
        #----------------------------------------------------------------------
        def onText(self, event):
            """
            """
            print self.text.GetValue()
    
    
    ########################################################################
    class MainFrame(wx.Frame):
        """"""
    
        #----------------------------------------------------------------------
        def __init__(self):
            """Constructor"""
            wx.Frame.__init__(self, None, title="Events!")
            panel = MyPanel(self)
            self.Show()
    
    #----------------------------------------------------------------------
    if __name__ == "__main__":
        app = wx.App(False)
        frame = MainFrame()
        app.MainLoop()
    

    【讨论】:

      猜你喜欢
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多