I have updated my script to use wx.RadioButton instead, which works perfectly on my mac again, but now the submit button doesn't show up on the pc and I can't click in the netid field on the pc either. any ideas?
# BEGIN CODE import wx; SUBMIT_BUTTON = wx.ID_HIGHEST + 10; class regFrame(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self, parent, -1, title, pos=(100, 100), size=(800, 600)); fileDialog = wx.FileDialog(self, "Select a file to which to write", style = wx.SAVE | wx.OVERWRITE_PROMPT, wildcard="*.txt|Text"); if(fileDialog.ShowModal() != wx.ID_OK): print "No file specified - closing"; self.Close(); return; write_file = fileDialog.GetPath(); self.write_file = open(write_file, "a"); # init main frame with menu and status bars self.panel = wx.Panel ( self, -1 ) menuBar = wx.MenuBar(); fileMenu = wx.Menu(); fileMenu.Append(wx.ID_ABOUT, "&About\tAlt-A", "About this program"); fileMenu.AppendSeparator(); fileMenu.Append(wx.ID_EXIT, "&Quit\tAlt-Q", "Quit this program"); menuBar.Append(fileMenu, "&File"); self.SetMenuBar(menuBar); self.CreateStatusBar(); self.ctrl_sizer = wx.GridBagSizer(5, 15); # build the controls instructions = " Enter your netid and size in the " + \ "boxes below and press the 'Submit Order' button to place " + \ "your order."; self.instruction_text = wx.StaticText(self, -1, instructions); self.id_text = wx.StaticText(self, -1, " netid"); self.id_input = wx.TextCtrl(self, -1, "", size=(160, -1)); self.size_text = wx.StaticText(self, -1, "size"); self.submit_button = wx.Button(self, SUBMIT_BUTTON, "Submit Order"); # put the controls into a grid self.ctrl_sizer.Add(self.instruction_text, (0, 0), span=(1, 3), flag=wx.EXPAND); self.ctrl_sizer.Add(self.id_text, (1, 0), flag=wx.EXPAND); self.ctrl_sizer.Add(self.size_text, (1, 1), flag=wx.EXPAND); self.ctrl_sizer.Add(self.id_input, (2, 0), flag=wx.HORIZONTAL); # TO MODIFY THE LIST OF SIZES, CHANGE THIS: self.valid_sizes = ['4XLT', '3XLT', '2XLT', '2XL', 'XLT', 'XL', 'LT', 'L', 'M', 'S', 'XS', 'XXS']; first_size = 1; size_count = 0; self.button_array = []; for this_size in self.valid_sizes: this_button = ''; if first_size: this_button = wx.RadioButton(self.panel, -1, this_size, style=wx.RB_GROUP); first_size = 0; else: this_button = wx.RadioButton(self.panel, -1, this_size); self.button_array.append(this_button); self.ctrl_sizer.Add(this_button, (size_count+2, 1)); size_count += 1; self.ctrl_sizer.Add(self.submit_button, (2, 2), flag=wx.HORIZONTAL); self.SetSizer(self.ctrl_sizer); self.ctrl_sizer.Fit(self); # register event handling functions wx.EVT_MENU(self, wx.ID_ABOUT, self.OnAbout); wx.EVT_MENU(self, wx.ID_EXIT, self.OnExit); wx.EVT_BUTTON(self, SUBMIT_BUTTON, self.OnSubmit); def OnAbout(self, evt): return; def OnExit(self, evt): if(self.write_file): self.write_file.close(); self.Close(); def OnSubmit(self, evt): selected_index = -1; this_index = 0; for this_button in self.button_array: if this_button.GetValue(): selected_index = this_index; this_index += 1; # make sure the user selected something if selected_index == -1: wx.MessageBox("You must select a size to place your order", "Please select a size", wx.ICON_EXCLAMATION); return; # build a tab-delimited-text line of the data and write it save_fields = [self.id_input.GetValue(), self.valid_sizes[selected_index]]; save_str = "\t".join(save_fields); # ask for validation before we save dialog_str = "Are you sure this is correct?" + \ "\n Netid: " + save_fields[0] + \ "\n Size: " + save_fields[1]; if(wx.MessageBox(dialog_str, "Confirm Order", wx.YES_NO | wx.ICON_EXCLAMATION) == wx.YES): # write it out and flush the buffer to make sure it's on disk self.write_file.write(save_str + "\n"); self.write_file.flush(); wx.MessageBox("Your order has been saved. Thanks!"); # reset the controls for the next user self.id_input.SetValue(''); self.button_array[selected_index].SetValue(0); class pyReg2App(wx.App): def OnInit(self): main_frame = regFrame(None, "Senior Jacket Registration"); self.SetTopWindow(main_frame); main_frame.Show(True); return True; reg_app = pyReg2App(redirect=False); reg_app.MainLoop(); # END CODE -- http://mail.python.org/mailman/listinfo/python-list