Returning a value from a Tk dialog

Ron Adam rrr at ronadam.com
Mon Nov 7 23:10:01 EST 2005



Gordon Airporte wrote:
> The dialogs in tkColorChooser, tkFileDialog, etc. return useful values 
> from their creation somehow, so I can do stuff like this:
> 
> filename = tkFileDialog.askopenfilename( master=self )
> 
> I would like to make a Yes/No/Cancel dialog that can be used the same 
> way (returning 1/0/-1), but I just cannot figure out how to do it. At 
> best I've been able to get some kind of instance id from the object. How 
> does this work?

All of the dialogs you mention use functions as a caller.  And then the 
function is returning the result.


 From tkColorChooser...

def askcolor(color = None, **options):
     "Ask for a color"

     if color:
         options = options.copy()
         options["initialcolor"] = color

     return Chooser(**options).show()


In this case the Chooser(**options) initiates the dialog, and then the 
show() method is called and it returns the value.  The return line above 
is the same as...

    cc = Chooser(**options)
    color = cc.show()
    return color

The other dialogs work in same way.  They are all based on 
tkCommonDialog, so look in tkCommonDialog.py to see exactly what's going on.

Cheers,
    Ron






More information about the Python-list mailing list