def __init__(self,parent): wx.Dialog.__init__(self,parent,title='Preferences') sizer=wx.BoxSizer(wx.VERTICAL) spacer=(5,5) self.prefs=Preferences() self.show_line_numbers=self.CreatePrefsCheckBox("Show line numbers", PREF_SHOW_LINENUMBERS, True) self.auto_save=self.CreatePrefsCheckBox("Auto-save every five minutes", PREF_AUTO_SAVE, True) sizer.Add(self.show_line_numbers, 0, wx.ALL, 10) sizer.Add(self.auto_save, 0, wx.ALL, 10) button_sizer=wx.StdDialogButtonSizer() ok=wx.Button(self,wx.ID_OK,"Done") ok.SetDefault() button_sizer.AddButton(ok) button_sizer.SetAffirmativeButton(ok) button_sizer.Realize() sizer.Add(spacer) sizer.Add(spacer) sizer.Add(button_sizer, 0, wx.CENTER|wx.ALL, 10) sizer.Add(spacer) self.SetSizer(sizer) self.Fit()
class PrefDialog(wx.Dialog): def __init__(self,parent): wx.Dialog.__init__(self,parent,title='Preferences') sizer=wx.BoxSizer(wx.VERTICAL) spacer=(5,5) self.prefs=Preferences() self.show_line_numbers=self.CreatePrefsCheckBox("Show line numbers", PREF_SHOW_LINENUMBERS, True) self.auto_save=self.CreatePrefsCheckBox("Auto-save every five minutes", PREF_AUTO_SAVE, True) sizer.Add(self.show_line_numbers, 0, wx.ALL, 10) sizer.Add(self.auto_save, 0, wx.ALL, 10) button_sizer=wx.StdDialogButtonSizer() ok=wx.Button(self,wx.ID_OK,"Done") ok.SetDefault() button_sizer.AddButton(ok) button_sizer.SetAffirmativeButton(ok) button_sizer.Realize() sizer.Add(spacer) sizer.Add(spacer) sizer.Add(button_sizer, 0, wx.CENTER|wx.ALL, 10) sizer.Add(spacer) self.SetSizer(sizer) self.Fit() def CreatePrefsCheckBox(self, label, pref_key, default): checkbox=wx.CheckBox(self, -1, label) checkbox.SetValue(self.prefs.get(pref_key,default)) def update_pref(event): self.prefs.set(pref_key, checkbox.GetValue()) self.prefs.flush() checkbox.Bind(wx.EVT_CHECKBOX, update_pref) return checkbox