Python event & wxPython question:

Tim Hochberg tim.hochberg at ieee.org
Thu Feb 13 17:53:43 EST 2003


bob wrote:
> Here's a piece of my code. My question is this... It's simple, but I
> can't seem to find an example.. On a frame, I have a button, and a
> textbox.. I want to hit a button, and that event will call a function,
> in that function I want the value that was in the textbox.. I can't
> figure out how to access that value in the function that was called...
> Please help.. This is the code, It's just test code, trying to figure
> out some basic funtionality. When the onbtnTest function is called,
> I'd like to have access to the value in txtText ...

This might be better asked on the wxpython list, but here's one way to 
do it. (see below)

Regards,

-tim



> from wxPython.wx import *
> 
> 
> ID_ABOUT = 101
> ID_EXIT  = 102
> ID_BSTUFF = 103
> 
> class MyFrame(wxFrame):
>     def __init__(self, parent, ID, title):
>         wxFrame.__init__(self, parent, ID, title,
>                          wxDefaultPosition, wxSize(400, 350))
>         self.CreateStatusBar()
>         self.SetStatusText("This is the statusbar")
>         menu = wxMenu()
>         menu2 = wxMenu()
> 
>         menu.Append(ID_EXIT, "E&xit", "Terminate the program")
>         menu2.Append(ID_ABOUT, "&About", "More information about this
> program")
>         
>         
>         menuBar = wxMenuBar()
>         menuBar.Append(menu, "&File");
>         menuBar.Append(menu2, "&Help");
>         self.SetMenuBar(menuBar)
> 
>         panel = wxPanel(self, -1)
>         
>         btnTest=wxButton(panel,ID_BSTUFF," Go ")

	  # -----------------------------------------
           # Store a reference to the textCtrl in self
           self.txtText = txtTest = wxTextCtrl(panel, 103, "Write Stuff 
Here!", size=(125,-1)
	  # -----------------------------------------


>         bs=wxBoxSizer(wxHORIZONTAL)
>         bs.Add(20, 0, 0)
>         bs.Add(btnTest,0,wxNORTH ,15)
>         bs.Add(20, 0, 0)
>         bs.Add(txtTest,0,wxNORTH,15)
>         panel.SetAutoLayout(true)
>         panel.SetSizer(bs)
>         EVT_BUTTON(panel,ID_BSTUFF,self.onbtnTest)
>         EVT_MENU(self, ID_ABOUT, self.OnAbout)
>         EVT_MENU(self, ID_EXIT,  self.TimeToQuit)
>         ass = txtTest.GetValue()


      # -----------------------------------------
      def onbtnTest(self,event):
          # Grab the value from the stored reference and print or...
          print self.txtTest.GetValue()
      # -----------------------------------------

> 
>         
>     def OnAbout(self, event):
>         dlg = wxMessageDialog(self, "Some About Stuff",
>                               "About Me", wxOK | wxICON_INFORMATION)
>         dlg.ShowModal()
>         dlg.Destroy()
> 
> 
>     def TimeToQuit(self, event):
>         self.Close(true)
> 
> 
> 
> class MyApp(wxApp):
>     def OnInit(self):
>         frame = MyFrame(NULL, -1, "Hello from wxPython")
>         frame.Show(true)
>         self.SetTopWindow(frame)
>         return true
> 
> app = MyApp(0)
> app.MainLoop()





More information about the Python-list mailing list