【发布时间】:2015-09-10 22:04:18
【问题描述】:
我正在使用 wxPython 构建一些 GUI...确实它不是一个简单的程序...
要生成许多用户输入和输出...
我在程序的一部分中放置了一个“添加”按钮,该按钮将动态添加一个 TextCtrl 字段和一个“打开”按钮来打开文件。单击“打开”后,用户可以选择一个文件,因此文件路径显示在 TextCtrl 字段中。
确实,使用一个简单的示例(一个 TextCtrl 一个按钮)我可以处理它...
但是以动态的方式,放几个TextCtrl和几个Button我不知道怎么处理...
在下面的代码中(只是一小部分,有些东西不应该在那里),我在“打开”按钮单击后放了一个“def OpenReadFile”,如您所见,它会将文本放在最后TextCtrl 不在相应的字段中...有什么想法吗?
换句话说...想象一下: 添加(用户可以添加“n”个样本)
"TEXT-1" 'BUTTON-1'
"TEXT-2" 'BUTTON-2'
"TEXT-3" 'BUTTON-3'
例如,如果用户单击 button-3,它将把文本放在 Text-3 字段中(如预期的那样)
如果用户点击 button-2,它会将文本放入 Text-3...
到目前为止我的代码(我确实知道错误在哪里,我只是不知道要做什么)=[
self.addButton = wx.Button(self, label="Add Sample")
self.Bind(wx.EVT_BUTTON, self.OnAddWidget, self.addButton)
def OnAddWidget(self, event):
self.samplenumber += 1
self.sampleTextCtrl = wx.TextCtrl(self, wx.NewId(), "", size = (200,-1))
self.buttonF = wx.Button(self, buttonId, label = "Select File") #Add Open File Button
self.Bind(wx.EVT_BUTTON, self.OpenReadFile, self.buttonF) #Add click event
self.fgs4.Add(self.buttonF, proportion = 1, flag = wx.CENTER, border = -1)
def OpenReadFile(self,event):
dlg = wx.FileDialog(self, "Open File",
os.getcwd(), style = wx.OPEN)
if dlg.ShowModal() == wx.ID_OK:
self.filename = dlg.GetPath()
self.sampleTextCtrl.SetValue(self.filename)
我很确定我必须在 OpenReadFile 中做一些事情 =]
已编辑
我之前已经放了一个字典,得到了按钮 ID,然后 TextCtrl 把它放在了字典中并完成了。
my_dict = {}
self.sampleTextCtrl = wx.TextCtrl(self, wx.NewId(), "", size = (200,-1))
value = self.sampleTextCtrl
buttonId = wx.NewId()
self.buttonF = wx.Button(self, buttonId, label = "Select File")
mydict[buttonId] = value
完成
【问题讨论】:
-
要为您自己的问题提供解决方案,请将其作为答案发布。