diff options
Diffstat (limited to 'Lib/lib-tk')
-rw-r--r-- | Lib/lib-tk/tkColorChooser.py | 3 | ||||
-rw-r--r-- | Lib/lib-tk/tkCommonDialog.py | 3 | ||||
-rw-r--r-- | Lib/lib-tk/tkSimpleDialog.py | 26 |
3 files changed, 21 insertions, 11 deletions
diff --git a/Lib/lib-tk/tkColorChooser.py b/Lib/lib-tk/tkColorChooser.py index 7ef63b4..a3db41e 100644 --- a/Lib/lib-tk/tkColorChooser.py +++ b/Lib/lib-tk/tkColorChooser.py @@ -22,7 +22,7 @@ # # FIXME: as of Tk 8.0a2, the Unix colour picker is really ugly, and -# doesn't seem to work properly on a true colour display. maybe we +# doesn't seem to work properly on true colour displays. maybe we # should use the instant python version instead? from tkCommonDialog import Dialog @@ -70,3 +70,4 @@ def askcolor(color = None, **options): if __name__ == "__main__": print "color", askcolor() + diff --git a/Lib/lib-tk/tkCommonDialog.py b/Lib/lib-tk/tkCommonDialog.py index 33126c5..df26272 100644 --- a/Lib/lib-tk/tkCommonDialog.py +++ b/Lib/lib-tk/tkCommonDialog.py @@ -42,7 +42,7 @@ class Dialog: self._fixoptions() - # we need a stub widget to properly process the options + # we need a dummy widget to properly process the options # (at least as long as we use Tkinter 1.63) w = Frame(self.master) @@ -61,3 +61,4 @@ class Dialog: pass return s + diff --git a/Lib/lib-tk/tkSimpleDialog.py b/Lib/lib-tk/tkSimpleDialog.py index 68f414a..c297922 100644 --- a/Lib/lib-tk/tkSimpleDialog.py +++ b/Lib/lib-tk/tkSimpleDialog.py @@ -115,6 +115,7 @@ import string class _QueryDialog(Dialog): def __init__(self, title, prompt, + initialvalue=None, minvalue = None, maxvalue = None, parent = None): @@ -127,16 +128,22 @@ class _QueryDialog(Dialog): self.minvalue = minvalue self.maxvalue = maxvalue + self.initialvalue = initialvalue + Dialog.__init__(self, parent, title) def body(self, master): - w = Label(master, text=self.prompt) + w = Label(master, text=self.prompt, justify=LEFT) w.grid(row=0, padx=5, sticky=W) self.entry = Entry(master, name="entry") self.entry.grid(row=1, padx=5, sticky=W+E) + if self.initialvalue: + self.entry.insert(0, self.initialvalue) + self.entry.select_range(0, END) + return self.entry def validate(self): @@ -147,7 +154,7 @@ class _QueryDialog(Dialog): result = self.getresult() except ValueError: tkMessageBox.showwarning( - "Bad value", + "Illegal value", self.errormessage + "\nPlease try again", parent = self ) @@ -157,16 +164,16 @@ class _QueryDialog(Dialog): tkMessageBox.showwarning( "Too small", "The allowed minimum value is %s. " - "Please try again" % self.minvalue, + "Please try again." % self.minvalue, parent = self ) return 0 if self.maxvalue is not None and result > self.maxvalue: tkMessageBox.showwarning( - "Bad value", + "Too large", "The allowed maximum value is %s. " - "Please try again" % self.maxvalue, + "Please try again." % self.maxvalue, parent = self ) return 0 @@ -177,7 +184,7 @@ class _QueryDialog(Dialog): class _QueryInteger(_QueryDialog): - errormessage = "Invalid integer" + errormessage = "Not an integer." def getresult(self): return string.atoi(self.entry.get()) @@ -186,7 +193,7 @@ def askinteger(title, prompt, **kw): return d.result class _QueryFloat(_QueryDialog): - errormessage = "Invalid floating point value" + errormessage = "Not a floating point value." def getresult(self): return string.atof(self.entry.get()) @@ -207,6 +214,7 @@ if __name__ == "__main__": root = Tk() root.update() - print askinteger("Spam", "Egg count") - print askfloat("Spam", "Egg weight") + print askinteger("Spam", "Egg count", initialvalue=12*12) + print askfloat("Spam", "Egg weight\n(in tons)", minvalue=1, maxvalue=100) print askstring("Spam", "Egg label") + |