我想在用户输入变量时将值保存到变量中。
我搜索了很多,发现我必须使用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())
我是一名物理系学生,有时我不得不做一些编码。 提前谢谢。
答案 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()
(还有一点点输入修改)。