使用事件处理获取多个wx小部件值

时间:2012-12-18 08:54:49

标签: python wxpython

代码:http://pastebin.com/W4uXmazw

我想记住在点击wx.Button之后如何通过事件处理从任何wx小部件获取值。

在我的程序中,我有两个字段,即新文件名和内容。

为了从每个字段中获取值,我必须采取哪些步骤?

从那里,我可以使用pythons f.open和f.write方法来完成我的应用程序。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想获得小部件的价值,那么您需要在整个班级中访问该小部件。为此,您需要将窗口小部件的变量变为实例变量。因此,您不想直接将文本控件添加到sizer中,而是希望执行以下操作:

self.newfilename = wx.TextCtrl(panel,-1), 0, wx.TOP, 5)
self.contents = wx.TextCtrl(panel,-1,size=(390,150),style = wx.TE_MULTILINE|wx.TE_PROCESS_TAB)

然后在按钮的事件处理程序中,您可以执行以下操作:

valueOne = self.newfilename.GetValue()
contents = self.contents.GetValue()

另一种方法是使用您的面板。如果您使用“self.panel”,那么您可以通过其GetChildren方法获取其所有子节点,然后遍历列表并使用内置的Python“isinstance”来检查您正在访问的小部件类型。如果您设置了小部件的名称,也可以检查它。