【发布时间】:2013-11-01 18:28:43
【问题描述】:
我有一个允许用户动态创建字段的脚本。其中一个字段是用于打开用户输入对话框的按钮,另外两个是文本输入。对于这两个文本输入,检索用户输入非常简单,可以通过在 sizer 中创建所有 sizer 对象的列表,然后获取每个对象的小部件对象,然后获取其值,如下所示。
for sizerItem in sizer.GetChildren():
userInput = sizerItem.GetWindow().GetValue()
但是,如果小部件是一个按钮,这将失效,因为该按钮没有任何价值。所以我需要的是像GetWindow() 这样的东西,它将返回小部件对象所绑定的函数。那么
exampleBtn = wx.Button(panel, -1, "Do Stuff")
self.Bind(wx.EVT_BUTTON, self.exampleFunc, exampleBtn) #with exampleFunc defined elsewhere
print exampleBtn.GetFunctions()
会返回:
['exampleFunc object']
编辑:所以这里是对这里发生的事情的更恰当的解释。有一“行”小部件包含两个文本输入和一个按钮。按钮绑定到一个函数,该函数创建一个对话框,用户从该对话框的列表中选择项目。用户可以随意添加/删除这些小部件行(零行是可能的)。所以需要发生的是每行中的按钮允许独立于其他行选择项目。这已经通过文本输入完成。
【问题讨论】:
-
用户从对话框中选择项目后应该发生什么?这些选择是否进入按钮所在行中的文本控件?
-
不,选择与文本控件输入之一(集中为列表)一起进入单独的字典,其中一个文本控件是键。但是,我设法解决了问题。不过感谢您的帮助!
标签: python-2.7 wxpython