如何在wxpython中使用GetValue()?

时间:2014-05-06 02:37:34

标签: python-2.7 wxpython wxwidgets

我想在用户输入变量时将值保存到变量中。 我搜索了很多,发现我必须使用GetValue(),但是怎么样? 任何人都可以帮我处理我的代码吗? self.tc = wx.TextCtrl(p, pos=(1.4*L,90),size=(150,90)) 我不知道class是什么,所以使用没有它的方法。 我已经尝试过了,但无法解决这个问题。

self.tc = wx.TextCtrl(p, pos=(1.4*L,90),size=(150,90))
self.yy=(tc.GetValue())

我是一名物理系学生,有时我不得不做一些编码。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

我建议阅读关于wxPython的教程,例如关于zetcode的教程:

或者通过浏览wxPython wiki上的一些初学者示例:

然后您将知道如何在类中使用TextCtrl。这是一个简单的例子,你可以从中学到很多概念:

import wx

########################################################################
class MyFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, parent=None, title="Example")
        panel = wx.Panel(self)

        sizer = wx.BoxSizer(wx.VERTICAL)

        self.text = wx.TextCtrl(panel)
        sizer.Add(self.text, 0, wx.ALL|wx.EXPAND, 5)

        button = wx.Button(panel, label="Get Value")
        button.Bind(wx.EVT_BUTTON, self.onButton)
        sizer.Add(button, 0, wx.ALL, 5)

        panel.SetSizer(sizer)
        self.Show()

    #----------------------------------------------------------------------
    def onButton(self, event):
        """"""
        print self.text.GetValue()

#----------------------------------------------------------------------
if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame()
    app.MainLoop()

这演示了如何将TextCtrl和Button对象添加到类中。您会注意到这两个小部件是wx.Panel的子代,它是wx.Frame的唯一子代。我们使用垂直方向的BoxSizer来保存两个子小部件并定位它们。我们将按钮绑定到事件处理程序( onButton ),我们在其中获取文本控件的内容并将其打印到标准输出。

答案 1 :(得分:0)

可能你已经解决了(或被遗弃),但这是为了记录。

Python的问题,而不是wxPython&#39。变量tc被声明为class'使用self的财产,所以你必须坚持到最后的课程。

因此,您需要将self.yy=(tc.GetValue())更改为self.yy = self.tc.GetValue()(还有一点点输入修改)。