cleaner way to write this?
Paul Rubin
http
Wed Oct 25 15:18:50 EDT 2006
John Salerno <johnjsal at NOSPAMgmail.com> writes:
> > def create_db_name(self):
> > try:
> > while True:
> > dlg = wx.TextEntryDialog(self.frame, 'Enter a database name:',
> > 'Create New Database')
> > if dlg.ShowModal() != wx.ID_OK:
> > return None
> > db_name = dlg.GetValue()
> > if db_name:
> > return db_name
> > pop_up_error_dialog("please enter a value or press cancel")
> > finally:
> > dlg.Destroy()
>
> Interesting. Some variation of this might suit me, but I think one
> other problem I'm having is that the ShowModal() method returns
> whenever a button is pressed, so even if OK is pressed with an empty
> string in the box, the dialog disappears and returns an "OK" value.
Right. The above handles that case, I believe. If the user clicks
with an empty string, showModal() returns wx.ID_OK, GetValue() returns
the empty string, db_name gets set to that empty string, db_name gets
tested (maybe I should have made the comparison with the empty string
explicit), the error dialog pops up since db_name is empty, and the
loop repeats.
More information about the Python-list
mailing list