gpt4 book ai didi

python - wxpython事件处理: GetValue after key is pressed

转载 作者:行者123 更新时间:2023-12-01 05:31:38 24 4
gpt4 key购买 nike

我想在每次 TextCtrl 更改时获取 TextCtrl 的值。我的代码返回“旧”值(就像我按下该键之前一样) - 但我想用我按下的键获取"new"值。例如,当我的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,但是当我删除一个值而不是添加一个值时,这不起作用 =/

最佳答案

您需要绑定(bind)到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()

关于python - wxpython事件处理: GetValue after key is pressed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20093576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com