2011-03-13 36 views
3

这是一个python pgm。它包含一个文本ctrl和一个按钮。请帮助我进行修改,以便在按下按钮时,我需要将在textctrl中输入的字符串用户存储到变量中。如何接受来自wxpython的textctrl的值

#! /usr/bin/env python 
#Boa:Frame:Frame1 

import wx 

def create(parent): 
    return Frame1(parent) 

[wxID_FRAME1, wxID_FRAME1BUTTON1, wxID_FRAME1PANEL1, wxID_FRAME1TEXT1, 
] = [wx.NewId() for _init_ctrls in range(4)] 

class Frame1(wx.Frame): 
    def _init_ctrls(self, prnt): 
     # generated method, don't edit 
     wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt, 
       pos=wx.Point(249, 224), size=wx.Size(683, 445), 
       style=wx.DEFAULT_FRAME_STYLE, title='Frame1') 
     self.SetClientSize(wx.Size(683, 445)) 

     self.panel1 = wx.Panel(id=wxID_FRAME1PANEL1, name='panel1', parent=self, 
       pos=wx.Point(0, 0), size=wx.Size(683, 445), 
       style=wx.TAB_TRAVERSAL) 

     self.text1 = wx.TextCtrl(id=wxID_FRAME1TEXT1, name=u'text1', 
       parent=self.panel1, pos=wx.Point(268, 139), size=wx.Size(103, 25), 
       style=0, value=u'enter') 

     self.button1 = wx.Button(id=wxID_FRAME1BUTTON1, label=u'click', 
       name='button1', parent=self.panel1, pos=wx.Point(279, 272), 
       size=wx.Size(85, 27), style=0) 
     self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button, 
       id=wxID_FRAME1BUTTON1) 

    def __init__(self, parent): 
     self._init_ctrls(parent) 

    def OnButton1Button(self, event): 
     event.Skip() 


if __name__ == '__main__': 
    app = wx.PySimpleApp() 
    frame = create(None) 
    frame.Show() 

    app.MainLoop() 

回答

4

有连接到名为getValue一个wxTextCtrl对象的方法,所以在OnButton1Button(),你叫

var = self.text1.GetValue() 

然后你想要做什么用var之后。

+0

is'nt it var = self.text1.GetValue()??案件重大?但做完这个后,当我添加“打印变种”字符串不打印。 – 2011-03-13 04:37:09

+0

我还没有使用Python版本的wxWidgets,只是C++版本,但是[进一步调查](http://www.wxpython.org/docs/api/wx.TextCtrl-class.html#GetValue)它事实上是GetValue(),而不是getValue()。我唯一的建议是将变量的名称改为str或myVar1,以确保var不是python中的保留字。 – 2011-03-13 04:46:30

+0

thaanx ..它现在工作.. – 2011-03-13 05:08:50

相关问题