mirror of https://github.com/python/cpython.git
parent
4840112121
commit
d5062babed
|
@ -11,13 +11,40 @@
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
# dialog base class
|
# dialog base class
|
||||||
|
|
||||||
|
'''Dialog boxes
|
||||||
|
|
||||||
|
This module handles dialog boxes. It contains the following
|
||||||
|
public symbols:
|
||||||
|
|
||||||
|
Dialog -- a base class for dialogs
|
||||||
|
|
||||||
|
askinteger -- get an integer from the user
|
||||||
|
|
||||||
|
askfloat -- get a float from the user
|
||||||
|
|
||||||
|
askstring -- get a string from the user
|
||||||
|
'''
|
||||||
|
|
||||||
from Tkinter import *
|
from Tkinter import *
|
||||||
import os
|
import os
|
||||||
|
|
||||||
class Dialog(Toplevel):
|
class Dialog(Toplevel):
|
||||||
|
|
||||||
|
'''Class to open dialogs.
|
||||||
|
|
||||||
|
This class is intended as a base class for custom dialogs
|
||||||
|
'''
|
||||||
|
|
||||||
def __init__(self, parent, title = None):
|
def __init__(self, parent, title = None):
|
||||||
|
|
||||||
|
'''Initialize a dialog.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
parent -- a parent window (the application window)
|
||||||
|
|
||||||
|
title -- the dialog title
|
||||||
|
'''
|
||||||
Toplevel.__init__(self, parent)
|
Toplevel.__init__(self, parent)
|
||||||
self.transient(parent)
|
self.transient(parent)
|
||||||
|
|
||||||
|
@ -49,6 +76,7 @@ def __init__(self, parent, title = None):
|
||||||
self.wait_window(self)
|
self.wait_window(self)
|
||||||
|
|
||||||
def destroy(self):
|
def destroy(self):
|
||||||
|
'''Destroy the window'''
|
||||||
self.initial_focus = None
|
self.initial_focus = None
|
||||||
Toplevel.destroy(self)
|
Toplevel.destroy(self)
|
||||||
|
|
||||||
|
@ -56,14 +84,19 @@ def destroy(self):
|
||||||
# construction hooks
|
# construction hooks
|
||||||
|
|
||||||
def body(self, master):
|
def body(self, master):
|
||||||
# create dialog body. return widget that should have
|
'''create dialog body.
|
||||||
# initial focus. this method should be overridden
|
|
||||||
|
|
||||||
|
return widget that should have initial focus.
|
||||||
|
This method should be overridden, and is called
|
||||||
|
by the __init__ method.
|
||||||
|
'''
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def buttonbox(self):
|
def buttonbox(self):
|
||||||
# add standard button box. override if you don't want the
|
'''add standard button box.
|
||||||
# standard buttons
|
|
||||||
|
override if you don't want the standard buttons
|
||||||
|
'''
|
||||||
|
|
||||||
box = Frame(self)
|
box = Frame(self)
|
||||||
|
|
||||||
|
@ -103,10 +136,20 @@ def cancel(self, event=None):
|
||||||
# command hooks
|
# command hooks
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
|
'''validate the data
|
||||||
|
|
||||||
|
This method is called automatically to validate the data before the
|
||||||
|
dialog is destroyed. By default, it always validates OK.
|
||||||
|
'''
|
||||||
|
|
||||||
return 1 # override
|
return 1 # override
|
||||||
|
|
||||||
def apply(self):
|
def apply(self):
|
||||||
|
'''process the data
|
||||||
|
|
||||||
|
This method is called automatically to process the data, *after*
|
||||||
|
the dialog is destroyed. By default, it does nothing.
|
||||||
|
'''
|
||||||
|
|
||||||
pass # override
|
pass # override
|
||||||
|
|
||||||
|
@ -196,6 +239,16 @@ def getresult(self):
|
||||||
return string.atoi(self.entry.get())
|
return string.atoi(self.entry.get())
|
||||||
|
|
||||||
def askinteger(title, prompt, **kw):
|
def askinteger(title, prompt, **kw):
|
||||||
|
'''get an integer from the user
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
title -- the dialog title
|
||||||
|
prompt -- the label text
|
||||||
|
**kw -- see SimpleDialog class
|
||||||
|
|
||||||
|
Return value is an integer
|
||||||
|
'''
|
||||||
d = apply(_QueryInteger, (title, prompt), kw)
|
d = apply(_QueryInteger, (title, prompt), kw)
|
||||||
return d.result
|
return d.result
|
||||||
|
|
||||||
|
@ -205,6 +258,16 @@ def getresult(self):
|
||||||
return string.atof(self.entry.get())
|
return string.atof(self.entry.get())
|
||||||
|
|
||||||
def askfloat(title, prompt, **kw):
|
def askfloat(title, prompt, **kw):
|
||||||
|
'''get a float from the user
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
title -- the dialog title
|
||||||
|
prompt -- the label text
|
||||||
|
**kw -- see SimpleDialog class
|
||||||
|
|
||||||
|
Return value is a float
|
||||||
|
'''
|
||||||
d = apply(_QueryFloat, (title, prompt), kw)
|
d = apply(_QueryFloat, (title, prompt), kw)
|
||||||
return d.result
|
return d.result
|
||||||
|
|
||||||
|
@ -213,6 +276,16 @@ def getresult(self):
|
||||||
return self.entry.get()
|
return self.entry.get()
|
||||||
|
|
||||||
def askstring(title, prompt, **kw):
|
def askstring(title, prompt, **kw):
|
||||||
|
'''get a string from the user
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
title -- the dialog title
|
||||||
|
prompt -- the label text
|
||||||
|
**kw -- see SimpleDialog class
|
||||||
|
|
||||||
|
Return value is a string
|
||||||
|
'''
|
||||||
d = apply(_QueryString, (title, prompt), kw)
|
d = apply(_QueryString, (title, prompt), kw)
|
||||||
return d.result
|
return d.result
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue