getOpenFile
-
ИМЯ
- tk_getOpenFile, tk_getSaveFile — выводит диалоговое окно для пользователя, чтобы он выбрал файл для открытия или сохранения.
- СИНТАКСИС
- ОПИСАНИЕ
-
-confirmoverwrite boolean
- -defaultextension расширение
- -filetypes список шаблонов файлов
- -initialdir директория
- -initialfile имя файла
- -message строка
- -multiple boolean
- -parent окно
- -title строка_заголовка
- -typevariable имя_переменной
- -defaultextension расширение
Имя
tk_getOpenFile, tk_getSaveFile — выводит диалоговое окно для пользователя, чтобы он выбрал файл для открытия или сохранения.Синтаксис
tk_getOpenFile ?значение_параметра ...?tk_getSaveFile ?значение_параметра ...?
Описание
Процедуры tk_getOpenFile и tk_getSaveFile выводит диалоговое окно для пользователя, чтобы он выбрал файл для открытия или сохранения. Команда tk_getOpenFile обычно ассоциируется с командой Открыть в меню Файл. Ее назначение — только для выбора существующего файла. Если пользователь вводит несуществующий файл, диалоговое окно выдает ошибку и требует от пользователя сделать другой выбор. Если приложение позволяет пользователю создавать новые файлы, оно должно делать это, предоставив отдельную команду меню Создать.Команда tk_getSaveFile обычно ассоциируется с командой Сохранить как в меню Файл. Если пользователь вводит файл, который уже существует, диалоговое окно запрашивает подтверждение, нужно ли перезаписать существующий файл.
Следующие пары значение-параметр возможны в качестве аргументов командной строки для этих двух команд:
- -confirmoverwrite boolean
- Настраивает поведение диалогового окна Сохранить, когда выбранный файл уже существует и сохранение перезапишет его. Значение true запрашивает диалоговое окно подтверждения у пользователя. Значение false запрашивает перезапись без подтверждения. Значение по умолчанию — true.
- -defaultextension расширение
- Указывает строку, которая будет добавлена к имени файла, если пользователь вводит имя файла без расширения. Значение по умолчанию — пустая строка, что означает, что расширение имени файла в любом случае не будет добавлено. Этот параметр игнорируется на Mac OS X, где не требуются расширения имен файлов, и реализация на UNIX угадывает разумные значения из параметра -filetypes, если он не указан.
- -filetypes список_шаблонов_файлов
- Если на конкретной платформе в диалоговом окне файла существует список типов файлов, этот параметр предоставляет типы файлов в этом списке. Когда пользователь выбирает тип файла в списке, отображаются только файлы этого типа. Если этот параметр не указан или если он установлен на пустой список, или если список типов файлов не поддерживается конкретной платформой, все файлы отображаются независимо от их типов. См. раздел УКАЗАНИЕ ШАБЛОНОВ ФАЙЛОВ ниже для обсуждения содержимого список_шаблонов_файлов.
- -initialdir директория
- Указывает, что файлы в директории должны отображаться при появлении диалогового окна. Если этот параметр не указан, по умолчанию используется текущая рабочая директория в системах, не являющихся Windows, и в системах Windows до Vista. В Vista и более поздних системах по умолчанию используется последняя выбранная пользователем директория для приложения. Если параметр указывает относительный путь, возвращаемое значение преобразует относительный путь в абсолютный.
- -initialfile имя_файла
- Указывает имя файла, которое будет отображено в диалоговом окне при его появлении.
- -message строка
- Указывает сообщение, которое должно быть включено в клиентскую область диалогового окна. Доступно только в Mac OS X.
- -multiple boolean
- Позволяет пользователю выбирать несколько файлов в диалоговом окне Открыть.
- -parent окно
- Делает окно логическим родителем диалогового окна файла. Диалоговое окно файла отображается поверх его родительского окна. В Mac OS X это превращает диалоговое окно файла в лист, прикрепленный к родительскому окну.
- -title строка_заголовка
- Указывает строку, отображаемую в качестве заголовка диалогового окна. Если этот параметр не указан, отображается заголовок по умолчанию.
- -typevariable имя_переменной
- Глобальная переменная имя_переменной используется для предварительного выбора фильтра, используемого из список_фильтров при открытии диалогового окна, и обновляется при закрытии диалогового окна до последнего выбранного фильтра. Переменная читается один раз в начале, чтобы выбрать соответствующий фильтр. Если переменная не существует, ее значение не соответствует никакому имени фильтра или она пуста ({}), диалоговое окно вернется к поведению по умолчанию, выбрав первый фильтр в списке. Если диалоговое окно отменено, переменная не изменяется.
Если пользователь выбирает файл, как tk_getOpenFile, так и tk_getSaveFile возвращают полный путь к этому файлу. Если пользователь отменяет операцию, обе команды возвращают пустую строку.
Указание шаблонов файлов
Значение список_шаблонов_файлов, заданное параметром -filetypes, представляет собой список шаблонов файлов. Каждый шаблон файла — это список в формеtypeName {extension ?extension ...?} ?{macType ?macType ...?}? имя_типа — это имя типа файла, описываемого этим шаблоном файла, и это текстовая строка, которая отображается в списке Типы файлов. расширение — это расширение файла для этого шаблона файла. macType — тип файла Macintosh, состоящий из четырех символов. Список macType необязателен и может быть опущен для приложений, которым не нужно работать в платформе Macintosh. Несколько шаблонов файлов могут иметь одинаковое имя_типа, в таком случае они относятся к одному типу файла и разделяют одну и ту же запись в списке. Когда пользователь выбирает запись в списке, отображаются все файлы, которые соответствуют хотя бы одному из шаблонов файлов, соответствующих этой записи. Обычно каждый шаблон файла соответствует одному типу файла. Использование более одного шаблона файла для одного типа файла необходимо только на платформе Macintosh.
В платформе Macintosh файл соответствует шаблону файла, если его имя совпадает с хотя бы одним из расширением(ий) И он принадлежит хотя бы одному из macType(ов) шаблона файла. Например, шаблон файла Файлы исходного кода C в примере кода соответствует файлам, имеющим расширение .c И принадлежащим типу macType TEXT. Чтобы использовать правило ИЛИ вместо И, можно использовать два шаблона файлов, один с только расширениями, а другой — только с macType. Тип файла GIF-файлы в примере кода соответствует файлам, которые либо имеют расширение .gif, либо принадлежат типу macType GIFF.
В платформах Unix и Windows файл соответствует шаблону файла, если его имя совпадает с хотя бы одним из расширением(ий) шаблона файла. macType игнорируются.
Указание расширений
В платформах 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 ne ""} {
# Open the file ...
} См. также
tk_chooseDirectory
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/getOpenFile.htm
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/getOpenFile.htm