Mercurial > cpython-lru_cache-weakref
diff Lib/lib-tk/tkSimpleDialog.py @ 21259:102d18ea02cf legacy-trunk
Be more careful about accessing attributes of the parent: if Tk has not been
initialized, this will be None, but the functions will still work (there will
simply be a bogus parent on the screen). Allowing the parent to be None
is useful when testing the functions from an interactive interpreter.
Add an optional keyword paramter "show" to the _QueryString class; when given
it is used to set the -show option to the entry widget. This allows passing
show="*" or the like to askstring(), making it useful for requesting
passwords/passphrases from the user.
This closes SF bug #438517.
Changed a docstring to be less font-lock-hostile.
| author | Fred Drake <fdrake@acm.org> |
|---|---|
| date | Thu, 06 Dec 2001 16:51:41 +0000 |
| parents | eee67a84e5fa |
| children | 90c77b8af1a4 |
line wrap: on
line diff
--- a/Lib/lib-tk/tkSimpleDialog.py Thu Dec 06 16:34:53 2001 +0000 +++ b/Lib/lib-tk/tkSimpleDialog.py Thu Dec 06 16:51:41 2001 +0000 @@ -68,8 +68,9 @@ self.protocol("WM_DELETE_WINDOW", self.cancel) - self.geometry("+%d+%d" % (parent.winfo_rootx()+50, - parent.winfo_rooty()+50)) + if self.parent is not None: + self.geometry("+%d+%d" % (parent.winfo_rootx()+50, + parent.winfo_rooty()+50)) self.initial_focus.focus_set() @@ -95,7 +96,7 @@ def buttonbox(self): '''add standard button box. - override if you don't want the standard buttons + override if you do not want the standard buttons ''' box = Frame(self) @@ -129,7 +130,8 @@ def cancel(self, event=None): # put focus back to the parent window - self.parent.focus_set() + if self.parent is not None: + self.parent.focus_set() self.destroy() # @@ -270,6 +272,20 @@ return d.result class _QueryString(_QueryDialog): + def __init__(self, *args, **kw): + if kw.has_key("show"): + self.__show = kw["show"] + del kw["show"] + else: + self.__show = None + _QueryDialog.__init__(self, *args, **kw) + + def body(self, master): + entry = _QueryDialog.body(self, master) + if self.__show is not None: + entry.configure(show=self.__show) + return entry + def getresult(self): return self.entry.get()
