3
다음은 python pgm입니다. 그것은 텍스트 ctrl과 버튼을 포함합니다. 버튼을 누르면 textctrl에 입력 된 문자열 사용자가 변수에 저장되도록 수정하도록 도와주세요.(), 당신은wxpython에서 textctrl의 가치를 받아들이는 법
var = self.text1.GetValue()
를 호출 한 다음 나중에 var
으로 원하는 것을 할 OnButton1Button에 있도록
#! /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()
is'nt var = self.text1.GetValue() ?? 대소 문자가 중요합니까? 하지만이 작업을 수행 한 후에 "print var"을 추가하면 문자열이 인쇄되지 않습니다. –
필자는 Python 버전의 wxWidgets, C++ 버전을 사용하지는 않았지만 [추가 조사] (http://www.wxpython.org/docs/api/wx.TextCtrl-class.html#GetValue)에서 사실 GetValue()가 아니라 getValue()입니다. 필자의 다른 제안은 변수의 이름을 str 또는 myVar1과 같이 변경하여 var이 파이썬에서 예약어가 아닌지 확인하는 것입니다. –
thaanx .. 이제 작동 중입니다 .. –