pop up a dialog box for the user to select a file to open.
http://www.purl.org/tcl/home/man/tcl8.4/TkCmd/getOpenFile.htm
SYNOPSIS
tk_getOpenFile ?option value ...?
DESCRIPTION
The procedure tk_getOpenFile pops up a dialog box for the user to select a file to open. The tk_getOpenFile command is usually associated with the Open command in the File menu. Its purpose is for the user to select an existing file only. If the user enters an non-existent file, the dialog box gives the user an error prompt and requires the user to give an alternative selection. If an application allows the user to create new files, it should do so by providing a separate New menu command.
On Windows, it calls a native file selector. You can get the Tcl-coded "original" as used on Unix/Linux by explicitly calling:
set filename [::tk::dialog::file:: open arg arg..]
Note that the command name is the empty string in its namespace. Any other value than open for the first argument calls the equivalent of tk_getSaveFile. (RS)
Some folks on Windows use a script version of tk_getOpenFile/tk_getSaveFile because there is an odd Windows bug that can cause your application to misbehave. If you double-click to select a file name, the dialog consumes only 1.5 clicks (<down><up><down>), then the dialog closes, and the remaining 0.5 click (<up> event) gets delivered to whatever widget was underneath. This can cause buttons to activate or focus to change. You might want to Drain The Event Queue.
tkfbox [L1 ] is a nifty little portable bundle for extending get{Open,Save}File capabilities.
This grabbed my attention because of my recent TIP regarding sub-classing the file dialogs on UNIX (well, non-Windows platforms). But there isn't enough documentation to tell what the benefits of this file are. -- CLN 2001-10-19
tkfbox was originally from sun, but partially reworked by me (Mick O'Donnell). I was recently asked why I used it rather than the now standard tk_getOpenFile/tk_getSaveFile. Well, I have so far found 4 advantages of pure the tcl/tk code versions:
DKF - As the maintainer of (the script versions of) the standard dialogs, I'd love to have suggestions of how to improve them, so long as these improvements are things that are not too hostile to operating in a cross-platform manner (note that the official script-level API is pretty-much fixed; the Windows native dialogs are not very capable!)
MGS With tk_getSaveFile and tk_chooseDirectory, you should be able to create directories.
DLR Suggestions for improvement: Change the default icons for folders and files, they look rather ugly. I use the ones that come with BWidgets. Ability to select multiple files.
JBR 2003-09-08 - I have extended the tkfbox code to include some new options. You can find it here: [L2 ]
-blueplate separates the dirs into one IconList and the files into another. -colormap allows the file dialog to use the colormap of a parent window. -dirslist take a list of "standard" directories and puts them at the top of the dir popup. -filetype enables a secret global parameter controlled by an additional file type popup menu. -infoproc an experimental feature to allow a proc to be called when the button one is pressed and help over an item.
I have just recently merged these extensions with the 8.4 tkfbox that allows multiple files to be selected. We use all these extended options in the ds9 image display program. The idea with the info proc feature is to allow the user to get some more info about the file before commiting to opening it. In the case of our image files a single image may contain many images of various types, the info proc can display additional data about where and when the images in the file were obtained and popup a menu allowing the user to select and image within the file.
2005-04-27 - I would like to use something like a 'tooltip' to display the modification date when the cursor is placed over file names in the tk_getOpenFile dialog box. Any suggestions on how to approach this would be appreciated.
See also:
Category Dialog - Category Command - Tk syntax help - Arts and Crafts of Tcl-Tk Programming