Открывает окно диалога, в котором пользователь должен выбрать файл для того, чтобы открыть его.
tk_getOpenFile ?параметр значение...?
Процедура tk_getOpenFile открывает окно диалога, в котором пользователь должен выбрать файл для того, чтобы открыть его.
Команда tk_getOpenFile обычно выполняется при вызове команды Open из меню File. Она позволяет лишь выбрать один из существующих файлов. Если пользователь вводит имя несуществующего файла, то окно диалога информирует его об ошибке и предлагает сделать другой выбор. Если приложение позволяет пользователю создавать файлы, то для этой цели должна быть предназначена специальная команда меню New.
В качестве пар аргумент-значение в командной строке этих двух команд допускаются следующие варианты:
После того, как пользователь выбрал файл, команда tk_getSaveFile возвращают полное имя пути к этому файлу. Если пользователь прерывает выполнение операции, то обе команды возвращают пустую строку.
Значение списокТиповФайлов параметра -filetypes представляет собой список образцов типов файлов. Каждый из образцов это список вида
имяТипа {расширение расширение...} {макТип макТип...}
имяТипа это имя типа файлов; его значение это текстовая строка, которая попадает в список типов файлов. расширение это одно из расширений для файлов данного типа. макТип это четырехсимвольный тип файлов на платформе Макинтош. Список макТипов необязателен, и для приложений, которые не планируется использовать на платформе Макинтош, его можно опустить.
Одно и то же имяТипа может встречаться в нескольких образцах; в этом случае все они описывают файлы одного типа и им соответствует одна строка в списке типов. При выборе такой строки в списке выводится список всех файлов, имена которых подходят хотя бы под один образец. Обычно каждому типу файлов соответствует в точности один образец. Использование нескольких образцов необходимо лишь для платформы Макинтош.
На платформе Макинтош файл подходит под образец, если расширение его имени совпадает по крайней мере с одним из расширений И оно имеется по крайней мере в одном из значений параметра макТип в образце. Например, под образец исходных файлов на языке C подходят файлы с расширением .c И с макТипом TEXT. Для того, чтобы заменить конъюнкцию И дизъюнкцией ИЛИ, нужно вместо одной строки образца завести две строки, в одной из которых есть только расширения, а в другой только макТипы. Под образец файлового типа GIF подходят файлы с расширением .gif ИЛИ имеющие макТип GIFF.
На платформах Unix и Windows файл подходит под образец файлового типа, если расширение его имени соответствует одному из расширений в образце. макТипы игнорируются.
На платформах Unix и Macintosh соответствие образцам устанавливается обычным образом. На платформах Windows соответствие образцам устанавливается операционной системой. Возможными расширениями могут быть:
Ввиду того, что на различных платформах используются различные правила соответствия, появление символов маски в расширениях не допускается, за исключением специального расширения "*". Расширения, в которых нет точки (например, "~"), допустимы, но они могут работать не на всех платформах.
set types { {{Text Files} {.txt} } {{TCL Scripts} {.tcl} } {{C Source Files} {.c} TEXT} {{GIF Files} {.gif} } {{GIF Files} {} GIFF} {{All Files} * } } set filename [tk_getOpenFile -filetypes $types] if {$filename != ""} { # Открыть файл ... }