问题描述
这就是我像往常一样在 TextCtrls
中初始化多个 ScrollView
的方式,处于循环中,所以我只能跟踪 ID。
for value in data:
Voteheadcode = value[0]
self.text = wx.TextCtrl(self.Votehead_ScrollView,int(Voteheadcode),wx.EmptyString,wx.DefaultPosition,wx.Size(400,-1),0)
horizontal_Scroll_BoxSizer.Add(self.text,wx.ALL,5)
如何仅使用输入的 ID 获取输入的值?在这种情况下Voteheadcode
,通常我们会
self.text.GetValue()
但这在这里行不通,我想仅使用 id 获取 TextValue。
解决方法
您可以将每个 wx.TextCtrl 存储在列表中,然后访问列表的项目以获取值,而不是这样做:
self.text = []
for value in data:
voteheadcode = value[0]
self.text.append(wx.TextCtrl(self.votehead_ScrollView,int(voteheadcode),wx.EmptyString,wx.DefaultPosition,wx.Size(400,-1),0))
horizontal_Scroll_BoxSizer.Add(self.text,wx.ALL,5)
那么你可以这样做:
self.text["the item you want's index"].GetValue()
或者当您创建它们时,您可以像这样绑定它们:
self.Bind(wx.EVT_TEXT_ENTER,self.OnEnterText)
def OnEnterTex(self,event):
control_id = event.GetId()
control = wx.FindItemById(control_id,self)
value = control.GetValue()
这样您就可以将值存储在您想要的位置或打印它