GtkFileChooser
GtkFileChooser — Интерфейс выбора файлов, используемый GtkFileChooserWidget и GtkFileChooserDialog
Функции
Свойства
| GtkFileChooserAction | действие | Чтение / Запись |
| gboolean | создание-папок | Чтение / Запись |
| gboolean | подтверждение-перезаписи | Чтение / Запись |
| GtkWidget * | дополнительный-виджет | Чтение / Запись |
| GtkFileFilter * | фильтр | Чтение / Запись |
| gboolean | только-локально | Чтение / Запись |
| GtkWidget * | виджет-предварительного-просмотра | Чтение / Запись |
| gboolean | виджет-предварительного-просмотра-активен | Чтение / Запись |
| gboolean | выбрать-многие | Чтение / Запись |
| gboolean | показать-скрытые | Чтение / Запись |
| gboolean | использовать-метку-предварительного-просмотра | Чтение / Запись |
Сигналы
Типы и Значения
| GtkFileChooser | |
| перечисление | GtkFileChooserAction |
| перечисление | GtkFileChooserConfirmation |
| #определить | GTK_FILE_CHOOSER_ERROR |
| перечисление | GtkFileChooserError |
Иерархия объектов
GInterface ╰── GtkFileChooser
Предварительные требования
GtkFileChooser требует GObject.
Известные реализации
GtkFileChooser реализован в GtkFileChooserButton, GtkFileChooserDialog и GtkFileChooserWidget.
Включения
#include <gtk/gtk.h>
Описание
GtkFileChooser — это интерфейс, который может быть реализован виджетами для выбора файлов. В GTK+, основные объекты, реализующие этот интерфейс, это GtkFileChooserWidget, GtkFileChooserDialog и GtkFileChooserButton. Вам не нужно писать объект, реализующий интерфейс GtkFileChooser, если вы не пытаетесь адаптировать существующий селектор файлов для экспонирования стандартного интерфейса программирования.
GtkFileChooser позволяет использовать ярлыки для доступа к различным местам в файловой системе. В стандартной реализации они отображаются в левой панели. Вначале может показаться немного запутанным, что эти ярлыки поступают из различных источников и в различных вариантах, поэтому давайте объясним терминологию здесь:
Закладки: создаются пользователем, перетаскивая папки из правой панели в левую или используя «Добавить». Пользователь может переименовывать и удалять закладки.
Ярлыки: могут быть предоставлены приложением. Например, программа Paint может добавить ярлык для папки с клипартами. Ярлыки не могут быть изменены пользователем.
Тома: предоставляются абстракцией файловой системы. Они являются «корнями» файловой системы.
Имена файлов и кодировки
Когда пользователь закончит выбор файлов в GtkFileChooser, ваша программа может получить выбранные имена как имена файлов или как URI. Для URI применяются стандартные правила экранирования, если URI содержит не-ASCII символы. Однако имена файлов всегда возвращаются в кодировке символов, указанной переменной среды G_FILENAME_ENCODING. Дополнительную информацию об этой переменной см. в документации GLib.
Это означает, что хотя вы можете передать результат gtk_file_chooser_get_filename() в open() или fopen(), вы, возможно, не сможете напрямую установить его как текст виджета GtkLabel, если не конвертируете его предварительно в UTF-8, что ожидают все виджеты GTK+. Вы должны использовать g_filename_to_utf8() для преобразования имён файлов в строки, которые можно передавать виджетам GTK+.
Добавление виджета предварительного просмотра
Вы можете добавить пользовательский виджет предварительного просмотра в селектор файлов и получать уведомления о необходимости обновления предварительного просмотра. Для установки виджета предварительного просмотра используйте gtk_file_chooser_set_preview_widget(). Затем подключитесь к сигналу «update-preview», чтобы получать уведомления о необходимости обновления содержимого предварительного просмотра.
Ваш обработчик должен использовать gtk_file_chooser_get_preview_filename() для определения того, что нужно просмотреть. После генерации предварительного просмотра соответствующего файла вы должны вызвать gtk_file_chooser_set_preview_widget_active() с логическим флагом, указывающим, смог ли ваш обработчик успешно сгенерировать предварительный просмотр.
Пример: Использование виджета предварительного просмотра
Добавление дополнительных виджетов
Вы можете добавить дополнительные виджеты в селектор файлов, чтобы предоставить варианты, которые отсутствуют в стандартном дизайне. Например, вы можете добавить переключатель, чтобы дать пользователю возможность открыть файл в режиме только для чтения. Вы можете использовать gtk_file_chooser_set_extra_widget() для вставки дополнительных виджетов в селектор файлов.
Пример добавления дополнительных виджетов:
Если вы хотите установить более одного дополнительного виджета в селекторе файлов, вы можете использовать контейнер, такой как GtkBox или GtkGrid, и включить в него свои виджеты. Затем установите контейнер в качестве всего дополнительного виджета.
Функции
gtk_file_chooser_set_action ()
void gtk_file_chooser_set_action (GtkFileChooser *chooser,GtkFileChooserAction action);
Устанавливает тип операции, выполняемой выбором файла; пользовательский интерфейс адаптируется к выбранному действию. Например, опция создания новой папки может отображаться, если действие равно GTK_FILE_CHOOSER_ACTION_SAVE, но не если действие равно GTK_FILE_CHOOSER_ACTION_OPEN.
Параметры
chooser | ||
action | действие, выполняемое выбором файла |
С: 2.4
gtk_file_chooser_get_action ()
GtkFileChooserAction
gtk_file_chooser_get_action (GtkFileChooser *chooser); Получает тип операции, выполняемой выбором файла; см. gtk_file_chooser_set_action().
Параметры
chooser |
Возвращает
действие, выполняемое выбором файла
С: 2.4
gtk_file_chooser_set_local_only ()
void gtk_file_chooser_set_local_only (GtkFileChooser *chooser,gboolean local_only);
Устанавливает, можно ли выбирать только локальные файлы в селекторе файлов. Если local_only равно TRUE (значение по умолчанию), то выбранный файл или файлы гарантированно доступны через родную файловую систему операционной системы, и поэтому приложение может только беспокоиться о функциях обработки имён файлов в GtkFileChooser, таких как gtk_file_chooser_get_filename(), а не о функциях обработки URI, таких как gtk_file_chooser_get_uri(),
На некоторых системах неродные файлы всё ещё могут быть доступны с помощью родной файловой системы через системную файловую систему (FUSE).
Параметры
chooser | ||
local_only |
|
С: 2.4
gtk_file_chooser_get_local_only ()
gboolean
gtk_file_chooser_get_local_only (GtkFileChooser *chooser); Получает, можно ли выбирать только локальные файлы в селекторе файлов. См. gtk_file_chooser_set_local_only()
Параметры
chooser |
Возвращает
TRUE, если можно выбирать только локальные файлы.
С: 2.4
gtk_file_chooser_set_select_multiple ()
void gtk_file_chooser_set_select_multiple (GtkFileChooser *chooser,gboolean select_multiple);
Устанавливает, можно ли выбирать несколько файлов в селекторе файлов. Это актуально только в том случае, если действие задано как GTK_FILE_CHOOSER_ACTION_OPEN или GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
Параметры
chooser | ||
select_multiple |
|
С: 2.4
gtk_file_chooser_get_select_multiple ()
gboolean
gtk_file_chooser_get_select_multiple (GtkFileChooser *chooser); Получает, можно ли выбирать несколько файлов в селекторе файлов. См. gtk_file_chooser_set_select_multiple().
Параметры
chooser |
Возвращает
TRUE, если можно выбирать несколько файлов.
С: 2.4
gtk_file_chooser_set_show_hidden ()
void gtk_file_chooser_set_show_hidden (GtkFileChooser *chooser,gboolean show_hidden);
Устанавливает, отображать ли скрытые файлы и папки в селекторе файлов.
Параметры
chooser | ||
show_hidden |
|
С: 2.6
gtk_file_chooser_get_show_hidden ()
gboolean
gtk_file_chooser_get_show_hidden (GtkFileChooser *chooser); Получает, отображаются ли скрытые файлы и папки в селекторе файлов. См. gtk_file_chooser_set_show_hidden().
Параметры
chooser |
Возвращает
TRUE, если скрытые файлы и папки отображаются.
С: 2.6
gtk_file_chooser_set_do_overwrite_confirmation ()
void gtk_file_chooser_set_do_overwrite_confirmation (GtkFileChooser *chooser,gboolean do_overwrite_confirmation);
Устанавливает, будет ли диалог подтверждения при перезаписи файла в режиме GTK_FILE_CHOOSER_ACTION_SAVE, если пользователь вводит имя файла, которое уже существует. По умолчанию это FALSE.
Если установлено значение TRUE, то chooser будет издавать сигнал “confirm-overwrite” при необходимости.
Если вам нужен только стандартный диалог подтверждения, установите это свойство в значение TRUE. Вы можете переопределить способ подтверждения, фактически обработав сигнал “confirm-overwrite”; подробности см. в документации к этому сигналу.
Параметры
chooser | ||
do_overwrite_confirmation | подтверждать ли перезапись в режиме сохранения |
С: 2.8
gtk_file_chooser_get_do_overwrite_confirmation ()
gboolean
gtk_file_chooser_get_do_overwrite_confirmation
(GtkFileChooser *chooser); Определяет, установлено ли в файловом диалоге подтверждение перезаписи при вводе имени файла, которое уже существует.
Параметры
chooser |
Возвращает
TRUE, если файловый диалог будет показывать диалог подтверждения; FALSE в противном случае.
С: 2.8
gtk_file_chooser_set_create_folders ()
void gtk_file_chooser_set_create_folders (GtkFileChooser *chooser,gboolean create_folders);
Устанавливает, будет ли файловый диалог предлагать создавать новые папки. Это актуально только если действие не задано как GTK_FILE_CHOOSER_ACTION_OPEN.
Параметры
chooser | ||
create_folders |
|
С: 2.18
gtk_file_chooser_get_create_folders ()
gboolean
gtk_file_chooser_get_create_folders (GtkFileChooser *chooser); Получает, будет ли файловый диалог предлагать создавать новые папки. См. gtk_file_chooser_set_create_folders().
Параметры
chooser |
Возвращает
TRUE, если должна быть отображена кнопка «Создать папку».
С: 2.18
gtk_file_chooser_set_current_name ()
void gtk_file_chooser_set_current_name (GtkFileChooser *chooser,const gchar *name);
Устанавливает текущее имя в файловом селекторе, как если бы его ввёл пользователь. Обратите внимание, что имя, переданное сюда, — строка UTF-8, а не имя файла. Эта функция предназначена для таких целей, как предложенное имя в диалоге «Сохранить как…». Вы можете передать «Без названия.doc» или аналогичное подходящее предложение для name.
Если вы хотите предварительно выбрать определённый существующий файл, используйте gtk_file_chooser_set_filename() или gtk_file_chooser_set_uri() вместо этого. См. документацию этих функций для примера использования gtk_file_chooser_set_current_name().
Параметры
chooser | ||
name | имя файла для использования, как строка UTF-8. | [type имя_файла] |
С: 2.4
gtk_file_chooser_get_current_name ()
gchar *
gtk_file_chooser_get_current_name (GtkFileChooser *chooser); Получает текущее имя в файловом селекторе, введённое пользователем в поле ввода «Имя».
Это предназначено для использования в диалогах сохранения, чтобы получить текущее введённое имя файла, когда сам файл ещё не существует. Например, приложение, добавляющее пользовательский дополнительный виджет в файловый селектор для «формата файла», может изменить расширение введённого имени файла в зависимости от выбранного формата, скажем, с «.jpg» на «.png».
Параметры
chooser |
Возвращает
Необработанный текст из поля «Имя» файлового селектора. Освободите его с помощью g_free(). Обратите внимание, что эта строка не является полным путём или URI; это содержимое поля ввода. Также обратите внимание, что эта строка в кодировке UTF-8, которая не обязательно совпадает с кодировкой имён файлов системы.
С: 3.10
gtk_file_chooser_get_filename ()
gchar *
gtk_file_chooser_get_filename (GtkFileChooser *chooser); Получает имя файла для текущего выбранного файла в файловом селекторе. Имя файла возвращается как абсолютный путь. Если выбрано несколько файлов, будет возвращено одно из имён файлов случайным образом.
Если файловый диалог находится в режиме папок, эта функция возвращает выбранную папку.
Параметры
chooser |
Возвращает
Текущее выбранное имя файла или NULL, если файл не выбран, или выбранный файл не может быть представлен локальным именем файла. Освободите с помощью g_free().
[nullable][type имя_файла]
С: 2.4
gtk_file_chooser_set_filename ()
gboolean gtk_file_chooser_set_filename (GtkFileChooser *chooser,const char *filename);
Устанавливает filename как текущее имя файла для файлового диалога, переключаясь на родительскую папку файла и фактически выбирая файл в списке; все остальные файлы будут сняты с выбора. Если chooser находится в режиме GTK_FILE_CHOOSER_ACTION_SAVE, имя файла также отобразится в поле ввода имени файла диалога.
Обратите внимание, что файл должен существовать, иначе ничего не произойдёт, кроме изменения каталога.
Эту функцию следует использовать только при реализации диалога сохранения, для которого у вас уже есть имя файла, в который пользователь может сохранить. Например, когда пользователь открывает существующий файл и затем выполняет «Сохранить как…», чтобы сохранить копию или изменённую версию. Если у вас ещё нет имени файла — например, если пользователь только что создал новый файл и сохраняет его в первый раз, не вызывайте эту функцию. Используйте что-то подобное:
В первом случае файловый диалог предоставит пользователю полезные предложения о том, где сохранить новый файл. Во втором случае местоположение файла уже известно, поэтому файловый диалог его использует.
Параметры
chooser | ||
filename | имя файла для установки в качестве текущего. | [type имя_файла] |
Возвращает
Не нужно.
С: 2.4
gtk_file_chooser_select_filename ()
gboolean gtk_file_chooser_select_filename (GtkFileChooser *chooser,const char *filename);
Выбирает имя файла. Если имя файла не находится в текущей папке chooser, тогда текущая папка chooser будет изменена на папку, содержащую filename.
Параметры
chooser | ||
filename | имя файла для выбора. | [type имя_файла] |
С: 2.4
gtk_file_chooser_unselect_filename ()
void gtk_file_chooser_unselect_filename (GtkFileChooser *chooser,const char *filename);
Отменяет выбор текущего файла. Если файл не находится в текущем каталоге, не существует или не выбран, ничего не происходит.
Параметры
chooser | ||
filename | имя файла, который нужно отменить. | [type filename] |
С: 2.4
gtk_file_chooser_select_all ()
void
gtk_file_chooser_select_all (GtkFileChooser *chooser); Выбирает все файлы в текущей папке файлового выбора.
Параметры
chooser |
С: 2.4
gtk_file_chooser_unselect_all ()
void
gtk_file_chooser_unselect_all (GtkFileChooser *chooser); Отменяет выбор всех файлов в текущей папке файлового выбора.
Параметры
chooser |
С: 2.4
gtk_file_chooser_get_filenames ()
GSList *
gtk_file_chooser_get_filenames (GtkFileChooser *chooser); Перечисляет все выбранные файлы и подкаталоги в текущей папке chooser. Возвращаемые имена — полные абсолютные пути. Если файлы в текущей папке не могут быть представлены как локальные имена файлов, они будут проигнорированы. (См. gtk_file_chooser_get_uris())
Параметры
chooser |
Возвращает
GSList содержащий имена файлов всех выбранных файлов и подкаталогов в текущей папке. Освободите возвращённый список с помощью g_slist_free(), а имена файлов — с помощью g_free().
[element-type filename][transfer full]
С: 2.4
gtk_file_chooser_set_current_folder ()
gboolean gtk_file_chooser_set_current_folder (GtkFileChooser *chooser,const gchar *filename);
Устанавливает текущую папку для chooser из локального имени файла. Пользователю будут показаны все содержимое текущей папки, а также элементы интерфейса для перехода к другим папкам.
В общем случае, не следует использовать эту функцию. См. раздел по настройке диалога файлового выбора для обоснования этого.
Параметры
chooser | ||
filename | полный путь к новой текущей папке. | [type filename] |
Возвращает
Не нужно.
С: 2.4
gtk_file_chooser_get_current_folder ()
gchar *
gtk_file_chooser_get_current_folder (GtkFileChooser *chooser); Возвращает текущую папку chooser как локальное имя файла. См. gtk_file_chooser_set_current_folder().
Обратите внимание, что это папка, которую в данный момент отображает файловый выборщик (например, "/home/username/Documents"), которая не совпадает с текущей выбранной папкой, если выборщик находится в режиме GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER (например, "/home/username/Documents/selected-folder/". Для получения текущей выбранной папки в этом режиме используйте gtk_file_chooser_get_uri() как обычный способ получения выбора).
Параметры
chooser |
Возвращает
полный путь к текущей папке или NULL, если текущий путь не может быть представлен как локальное имя файла. Освободите с помощью g_free(). Эта функция также вернёт NULL, если файловый выборщик не смог загрузить последнюю запрошенную папку; например, при вызове gtk_file_chooser_set_current_folder() для несуществующей папки.
[nullable][type filename]
С: 2.4
gtk_file_chooser_get_uri ()
gchar *
gtk_file_chooser_get_uri (GtkFileChooser *chooser); Возвращает URI текущего выбранного файла в селекторе файлов. Если выбрано несколько файлов, одно из имён файлов будет возвращено случайно.
Если файловый выборщик находится в режиме папки, эта функция возвращает выбранную папку.
Параметры
chooser |
Возвращает
Текущий выбранный URI или NULL, если файл не выбран. Если gtk_file_chooser_set_local_only() установлено в TRUE (по умолчанию), для любых расположений FUSE будет возвращён локальный URI. Освободите с помощью g_free().
[nullable][transfer full]
С: 2.4
gtk_file_chooser_set_uri ()
gboolean gtk_file_chooser_set_uri (GtkFileChooser *chooser,const char *uri);
Устанавливает файл, на который ссылается uri, как текущий файл для файлового выбора, изменив родительскую папку URI и фактически выбрав URI в списке. Если chooser находится в режиме GTK_FILE_CHOOSER_ACTION_SAVE, имя файла URI также будет отображаться в поле имени файла диалога.
Обратите внимание, что URI должен существовать, иначе ничего не будет сделано, кроме изменения каталога.
Следует использовать эту функцию только при реализации диалога сохранения, для которого у вас уже есть имя файла, в котором пользователь может сохранить. Например, когда пользователь открывает существующий файл, а затем нажимает «Сохранить как…», чтобы сохранить копию или изменённую версию. Если у вас ещё нет имени файла — например, если пользователь только что создал новый файл и сохраняет его впервые, не вызывайте эту функцию. Вместо этого используйте что-то подобное:
В первом случае файловый выборщик предоставит пользователю полезные предложения о том, куда сохранить новый файл. Во втором случае местоположение файла уже известно, поэтому файловый выборщик его использует.
Параметры
chooser | ||
uri | URI, который нужно установить в качестве текущего |
Возвращает
Не нужно.
С: 2.4
gtk_file_chooser_select_uri ()
gboolean gtk_file_chooser_select_uri (GtkFileChooser *chooser,const char *uri);
Выбирает файл по uri. Если URI не ссылается на файл в текущей папке chooser, то текущая папка chooser будет изменена на папку, содержащую filename.
Параметры
chooser | ||
uri | URI для выбора |
Возвращает
Не используется.
Since: 2.4
gtk_file_chooser_unselect_uri ()
void gtk_file_chooser_unselect_uri (GtkFileChooser *chooser,const char *uri);
Снимает выбор с файла, на который ссылается uri. Если файл не находится в текущем каталоге, не существует или по каким-либо причинам не выбран, ничего не происходит.
Параметры
chooser | ||
uri | URI для снятия выбора |
Since: 2.4
gtk_file_chooser_get_uris ()
GSList *
gtk_file_chooser_get_uris (GtkFileChooser *chooser); Отображает список всех выбранных файлов и подкаталогов в текущей папке chooser. Возвращаемые имена — полные абсолютные URI.
Параметры
chooser |
Возвращает
a GSList содержащий URI всех выбранных файлов и подкаталогов в текущей папке. Освободите возвращённый список с помощью g_slist_free(), а имена файлов — с помощью g_free().
[element-type utf8][transfer full]
Since: 2.4
gtk_file_chooser_set_current_folder_uri ()
gboolean gtk_file_chooser_set_current_folder_uri (GtkFileChooser *chooser,const gchar *uri);
Устанавливает текущую папку для chooser по URI. Пользователю будет показано полное содержимое текущей папки, а также элементы пользовательского интерфейса для перехода в другие папки.
В общем случае, не следует использовать эту функцию. Обратитесь к разделу по настройке диалогового окна выбора файла для обоснования этого.
Параметры
chooser | ||
uri | URI новой текущей папки |
Since: 2.4
gtk_file_chooser_get_current_folder_uri ()
gchar *
gtk_file_chooser_get_current_folder_uri
(GtkFileChooser *chooser); Получает текущую папку chooser в виде URI. См. gtk_file_chooser_set_current_folder_uri().
Обратите внимание, что это папка, которая в настоящее время отображается в окне выбора файла (например, «file:///home/username/Documents»), что не равно текущей выбранной папке, если окно выбора файла находится в режиме GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER (например, «file:///home/username/Documents/selected-folder/»). Чтобы получить текущую выбранную папку в этом режиме, используйте gtk_file_chooser_get_uri() как обычный способ получения выбора.
Параметры
chooser |
Возвращает
URI текущей папки. Освободите с помощью g_free(). Эта функция также вернёт NULL, если окно выбора файла не смогло загрузить последнюю запрошенную папку; например, при вызове gtk_file_chooser_set_current_folder_uri() для несуществующей папки.
[nullable][transfer full]
Since: 2.4
gtk_file_chooser_set_preview_widget ()
void gtk_file_chooser_set_preview_widget (GtkFileChooser *chooser,GtkWidget *preview_widget);
Устанавливает предоставленный приложением виджет для отображения пользовательского предварительного просмотра текущего выбранного файла. Для реализации предварительного просмотра после установки виджета предварительного просмотра подключитесь к сигналу “update-preview” и вызовите gtk_file_chooser_get_preview_filename() или gtk_file_chooser_get_preview_uri() при каждом изменении. Если вы можете отобразить предварительный просмотр нового файла, обновите свой виджет и установите предварительный просмотр активным, используя gtk_file_chooser_set_preview_widget_active(). В противном случае установите предварительный просмотр неактивным.
Когда нет виджета предварительного просмотра, предоставленного приложением, или виджет предварительного просмотра, предоставленный приложением, не активен, окно выбора файла не отобразит предварительный просмотр.
Параметры
chooser | ||
preview_widget | виджет для отображения предварительного просмотра. |
Since: 2.4
gtk_file_chooser_get_preview_widget ()
GtkWidget *
gtk_file_chooser_get_preview_widget (GtkFileChooser *chooser); Получает текущий виджет предварительного просмотра; см. gtk_file_chooser_set_preview_widget().
Параметры
chooser |
Since: 2.4
gtk_file_chooser_set_preview_widget_active ()
void gtk_file_chooser_set_preview_widget_active (GtkFileChooser *chooser,gboolean active);
Устанавливает, должен ли виджет предварительного просмотра, заданный с помощью gtk_file_chooser_set_preview_widget(), отображаться для текущего имени файла. Когда active устанавливается в false, файловый диалог может отобразить внутренне сгенерированный предварительный просмотр текущего файла или вообще не отображать предварительный просмотр. См. gtk_file_chooser_set_preview_widget() для получения более подробной информации.
Параметры
chooser | ||
active | отображать ли виджет предварительного просмотра, заданный пользователем |
С: 2.4
gtk_file_chooser_get_preview_widget_active ()
gboolean
gtk_file_chooser_get_preview_widget_active
(GtkFileChooser *chooser); Получает, должен ли виджет предварительного просмотра, заданный с помощью gtk_file_chooser_set_preview_widget(), отображаться для текущего имени файла. См. gtk_file_chooser_set_preview_widget_active().
Параметры
chooser |
Возвращает
TRUE, если виджет предварительного просмотра активен для текущего имени файла.
С: 2.4
gtk_file_chooser_set_use_preview_label ()
void gtk_file_chooser_set_use_preview_label (GtkFileChooser *chooser,gboolean use_label);
Устанавливает, должен ли файловый диалог отображать метку по умолчанию с именем файла, который просматривается; по умолчанию это TRUE. Приложения, которые хотят отобразить всю область предварительного просмотра самостоятельно, должны установить это значение в FALSE и отображать имя самостоятельно в своём виджете предварительного просмотра.
См. также: gtk_file_chooser_set_preview_widget()
Параметры
chooser | ||
use_label | отображать ли метку по умолчанию с именем файла предварительного просмотра |
С: 2.4
gtk_file_chooser_get_use_preview_label ()
gboolean
gtk_file_chooser_get_use_preview_label
(GtkFileChooser *chooser); Получает, должна ли быть нарисована метка по умолчанию с именем файла предварительного просмотра. См. gtk_file_chooser_set_use_preview_label().
Параметры
chooser |
gtk_file_chooser_get_preview_filename ()
char *
gtk_file_chooser_get_preview_filename (GtkFileChooser *chooser); Возвращает имя файла, которое должно быть просмотрено в пользовательском виджете предварительного просмотра. См. gtk_file_chooser_set_preview_widget().
Параметры
chooser |
Возвращает
имя файла для предварительного просмотра, или NULL, если файл не выбран, или если выбранный файл не может быть представлен как имя локального файла. Освобождается с помощью g_free().
[nullable][type filename]
С: 2.4
gtk_file_chooser_get_preview_uri ()
char *
gtk_file_chooser_get_preview_uri (GtkFileChooser *chooser); Возвращает URI, который должен быть просмотрен в пользовательском виджете предварительного просмотра. См. gtk_file_chooser_set_preview_widget().
Параметры
chooser |
Возвращает
URI файла для предварительного просмотра, или NULL, если файл не выбран. Освобождается с помощью g_free().
[nullable][transfer full]
С: 2.4
gtk_file_chooser_set_extra_widget ()
void gtk_file_chooser_set_extra_widget (GtkFileChooser *chooser,GtkWidget *extra_widget);
Устанавливает виджет, предоставленный приложением, для предоставления пользователю дополнительных параметров.
Параметры
chooser | ||
extra_widget | виджет для дополнительных параметров |
С: 2.4
gtk_file_chooser_get_extra_widget ()
GtkWidget *
gtk_file_chooser_get_extra_widget (GtkFileChooser *chooser); Возвращает текущий виджет предварительного просмотра; см. gtk_file_chooser_set_extra_widget().
Параметры
chooser |
С: 2.4
gtk_file_chooser_add_filter ()
void gtk_file_chooser_add_filter (GtkFileChooser *chooser,GtkFileFilter *filter);
Добавляет filter в список фильтров, которые пользователь может выбрать. Когда выбран фильтр, отображаются только файлы, прошедшие по этому фильтру.
Обратите внимание, что chooser принимает владение фильтром, поэтому вам необходимо обращаться к нему и перехватывать его, если вы хотите сохранить ссылку.
Параметры
chooser | ||
filter | [transfer full] |
С: 2.4
gtk_file_chooser_remove_filter ()
void gtk_file_chooser_remove_filter (GtkFileChooser *chooser,GtkFileFilter *filter);
Удаляет filter из списка фильтров, между которыми может выбирать пользователь.
Параметры
chooser | объект GtkFileChooser | |
filter | объект GtkFileFilter |
С версии: 2.4
gtk_file_chooser_list_filters ()
GSList *
gtk_file_chooser_list_filters (GtkFileChooser *chooser); Выводит текущий набор фильтров, доступных для выбора пользователем; см. gtk_file_chooser_add_filter(), gtk_file_chooser_remove_filter().
Параметры
chooser | объект GtkFileChooser |
Возвращает
список GSList с текущим набором фильтров, доступных для выбора пользователем. Содержимое списка принадлежит GTK+, но вы должны освободить сам список с помощью g_slist_free(), когда закончите с ним.
[element-type GtkFileFilter][transfer container]
С версии: 2.4
gtk_file_chooser_set_filter ()
void gtk_file_chooser_set_filter (GtkFileChooser *chooser,GtkFileFilter *filter);
Устанавливает текущий фильтр; будут отображаться только файлы, соответствующие фильтру. Если список доступных для выбора пользователем фильтров не пуст, то фильтр должен быть одним из фильтров в этом списке. Установка текущего фильтра, когда список фильтров пуст, полезна, если нужно ограничить отображаемый набор файлов без предоставления пользователю возможности его изменения.
Параметры
chooser | объект GtkFileChooser | |
filter | объект GtkFileFilter |
С версии: 2.4
gtk_file_chooser_get_filter ()
GtkFileFilter *
gtk_file_chooser_get_filter (GtkFileChooser *chooser); Возвращает текущий фильтр; см. gtk_file_chooser_set_filter().
Параметры
chooser | объект GtkFileChooser |
С версии: 2.4
gtk_file_chooser_add_shortcut_folder ()
gboolean gtk_file_chooser_add_shortcut_folder (GtkFileChooser *chooser,const char *folder,GError **error);
Добавляет папку для отображения со ссылками на папки в проводнике файлов. Обратите внимание, что папки со ссылками не сохраняются, так как они предоставляются приложением. Например, можно использовать это для добавления папки «/usr/share/mydrawprogram/Clipart» в список томов.
Параметры
chooser | объект GtkFileChooser | |
folder | имя файла папки для добавления. | [type filename] |
error | место для хранения ошибки или | [allow-none] |
Возвращает
TRUE, если папку удалось добавить, FALSE в противном случае. В последнем случае error будет установлено соответствующим образом.
С версии: 2.4
gtk_file_chooser_remove_shortcut_folder ()
gboolean gtk_file_chooser_remove_shortcut_folder (GtkFileChooser *chooser,const char *folder,GError **error);
Удаляет папку из списка папок со ссылками в проводнике файлов.
Параметры
chooser | объект GtkFileChooser | |
folder | имя файла папки для удаления. | [type filename] |
error | место для хранения ошибки или | [allow-none] |
Возвращает
TRUE, если операция выполнена успешно, FALSE в противном случае. В последнем случае error будет установлено соответствующим образом.
См. также: gtk_file_chooser_add_shortcut_folder()
С версии: 2.4
gtk_file_chooser_list_shortcut_folders ()
GSList *
gtk_file_chooser_list_shortcut_folders
(GtkFileChooser *chooser); Запрашивает список папок со ссылками в проводнике файлов, заданных с помощью gtk_file_chooser_add_shortcut_folder().
Параметры
chooser | объект GtkFileChooser |
Возвращает
список имен файлов папок или NULL, если папок со ссылками нет. Освободите возвращенный список с помощью g_slist_free(), а имена файлов с помощью g_free().
[nullable][element-type filename][transfer full]
С версии: 2.4
gtk_file_chooser_add_shortcut_folder_uri ()
gboolean gtk_file_chooser_add_shortcut_folder_uri (GtkFileChooser *chooser,const char *uri,GError **error);
Добавляет URI папки, которая будет отображаться в виде папки ярлыка в файловом выборе. Обратите внимание, что папки ярлыков не сохраняются, так как они предоставляются приложением. Например, вы можете использовать это для добавления папки «file:///usr/share/mydrawprogram/Clipart» в список томов.
Параметры
chooser | ||
uri | URI добавляемой папки | |
error | место для хранения ошибки, или | [allow-none] |
Возвращаемое значение
TRUE, если папка была успешно добавлена, FALSE в противном случае. В последнем случае error будет установлено соответствующим образом.
С: 2.4
gtk_file_chooser_remove_shortcut_folder_uri ()
gboolean gtk_file_chooser_remove_shortcut_folder_uri (GtkFileChooser *chooser,const char *uri,GError **error);
Удаляет URI папки из списка папок-ярлыков файлового выбора.
Параметры
chooser | ||
uri | URI удаляемой папки | |
error | место для хранения ошибки, или | [allow-none] |
Возвращаемое значение
TRUE, если операция выполнена успешно, FALSE в противном случае. В последнем случае error будет установлено соответствующим образом.
См. также: gtk_file_chooser_add_shortcut_folder_uri()
С: 2.4
gtk_file_chooser_list_shortcut_folder_uris ()
GSList *
gtk_file_chooser_list_shortcut_folder_uris
(GtkFileChooser *chooser); Запрашивает список папок-ярлыков в файловом выборе, заданных с помощью gtk_file_chooser_add_shortcut_folder_uri().
Параметры
chooser |
Возвращаемое значение
Список URIs папок или NULL, если папок-ярлыков нет. Освободите возвращённый список с помощью g_slist_free(), а URI — с помощью g_free().
[nullable][element-type utf8][transfer full]
С: 2.4
gtk_file_chooser_get_current_folder_file ()
GFile *
gtk_file_chooser_get_current_folder_file
(GtkFileChooser *chooser); Возвращает текущую папку chooser в виде GFile. См. gtk_file_chooser_get_current_folder_uri().
Параметры
chooser |
С: 2.14
gtk_file_chooser_get_file ()
GFile *
gtk_file_chooser_get_file (GtkFileChooser *chooser); Возвращает GFile выбранного файла в файловом селекторе. Если выбрано несколько файлов, возвращается один из них случайным образом.
Если файловый выборник находится в режиме папок, эта функция возвращает выбранную папку.
Параметры
chooser |
Возвращаемое значение
выбранный GFile. Вы владеете возвращенным файлом; используйте g_object_unref() для его освобождения.
[transfer full]
С: 2.14
gtk_file_chooser_get_files ()
GSList *
gtk_file_chooser_get_files (GtkFileChooser *chooser); Выводит список всех выбранных файлов и подпапок в текущей папке chooser в виде GFile. Внутренняя функция, см. gtk_file_chooser_get_uris().
Параметры
chooser |
Возвращаемое значение
GSList, содержащий GFile для каждого выбранного файла и подпапки в текущей папке. Освободите возвращённый список с помощью g_slist_free(), а файлы — с помощью g_object_unref().
[element-type GFile][transfer full]
С: 2.14
gtk_file_chooser_get_preview_file ()
GFile *
gtk_file_chooser_get_preview_file (GtkFileChooser *chooser); Возвращает GFile для предварительного просмотра в пользовательском представлении. Внутренняя функция, см. gtk_file_chooser_get_preview_uri().
Параметры
chooser |
Возвращаемое значение
GFile для предварительного просмотра файла или NULL, если файл не выбран. Освободите с помощью g_object_unref().
[nullable][transfer full]
С: 2.14
gtk_file_chooser_select_file ()
gboolean gtk_file_chooser_select_file (GtkFileChooser *chooser,GFile *file,GError **error);
Выбирает файл, на который ссылается file. Внутренняя функция. См. _gtk_file_chooser_select_uri().
Параметры
chooser | ||
file | выбираемый файл | |
error | место для хранения ошибки, или | [allow-none] |
Возвращаемое значение
Неполезно.
С: 2.14
gtk_file_chooser_set_current_folder_file ()
gboolean gtk_file_chooser_set_current_folder_file (GtkFileChooser *chooser,GFile *file,GError **error);
Устанавливает текущую папку для chooser из GFile. Внутренняя функция, см. gtk_file_chooser_set_current_folder_uri().
Параметры
С: 2.14
gtk_file_chooser_set_file ()
gboolean gtk_file_chooser_set_file (GtkFileChooser *chooser,GFile *file,GError **error);
Устанавливает file в качестве текущего имени файла для выбора файла, изменив папку родителя файла и фактически выбрав файл в списке. Если chooser находится в режиме GTK_FILE_CHOOSER_ACTION_SAVE, базовое имя файла также будет отображено в поле имени файла диалога.
Если имя файла не находится в текущей папке chooser, текущая папка chooser будет изменена на папку, содержащую filename. Это эквивалентно последовательности gtk_file_chooser_unselect_all(), за которой следует gtk_file_chooser_select_filename().
Обратите внимание, что файл должен существовать, в противном случае ничего не будет сделано, кроме изменения каталога.
Если вы реализуете диалог сохранения, используйте эту функцию, если у вас уже есть имя файла, в которое пользователь может сохранить; например, когда пользователь открывает существующий файл и затем нажимает «Сохранить как…». Если у вас еще нет имени файла — например, если пользователь только что создал новый файл и сохраняет его в первый раз, не вызывайте эту функцию. Вместо этого используйте что-то подобное:
Параметры
Возвращаемое значение
Неполезно.
С: 2.14
gtk_file_chooser_unselect_file ()
void gtk_file_chooser_unselect_file (GtkFileChooser *chooser,GFile *file);
Снимает выделение с файла, на который ссылается file. Если файл не в текущей директории, не существует или по другим причинам не выделен, ничего не делает.
Параметры
chooser | ||
file | a GFile |
С: 2.14
Типы и значения
GtkFileChooser
typedef struct _GtkFileChooser GtkFileChooser;
перечисление GtkFileChooserAction
Описывает, используется ли GtkFileChooser для открытия существующих файлов или сохранения в возможно новый файл.
Члены
GTK_FILE_CHOOSER_ACTION_OPEN | Указывает режим открытия. Файловый диалог позволит пользователю выбрать только существующий файл. | |
GTK_FILE_CHOOSER_ACTION_SAVE | Указывает режим сохранения. Файловый диалог позволит пользователю выбрать существующий файл или ввести новое имя файла. | |
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER | Указывает режим открытия для выбора папок. Файловый диалог позволит пользователю выбрать существующую папку. | |
GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER | Указывает режим для создания новой папки. Файловый диалог позволит пользователю указать имя существующей или новой папки. |
перечисление GtkFileChooserConfirmation
Используется в качестве возвращаемого значения обработчиков сигнала “confirm-overwrite” GtkFileChooser. Это значение определяет, будет ли файловый диалог отображать стандартное диалоговое окно подтверждения, принимать выбор пользователя имени файла или позволять пользователю выбрать другое имя файла.
Члены
GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM | Файловый диалог отобразит стандартное диалоговое окно для подтверждения перезаписи существующего файла. | |
GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME | Файловый диалог завершит работу и примет выбранное пользователем имя файла. | |
GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN | Файловый диалог продолжит работу, чтобы пользователь смог выбрать другое имя файла. |
Since: 2.8
GTK_FILE_CHOOSER_ERROR
#define GTK_FILE_CHOOSER_ERROR (gtk_file_chooser_error_quark ())
Используется для получения маркера GError для ошибок GtkFileChooser.
перечисление GtkFileChooserError
Эти значения идентифицируют различные ошибки, которые могут произойти при вызове функций GtkFileChooser.
Члены
GTK_FILE_CHOOSER_ERROR_NONEXISTENT | Указывает, что файла не существует. | |
GTK_FILE_CHOOSER_ERROR_BAD_FILENAME | Указывает некорректное имя файла. | |
GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS | Указывает дублирование пути (например, при добавлении закладки). | |
GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME | Указывает неполное имя хоста (например, "http://foo" без слэша после него). |
Подробности свойств
Свойство “action”
“action” GtkFileChooserAction
Тип операции, выполняемой селектором файла.
Флаги: Чтение / Запись
Значение по умолчанию: GTK_FILE_CHOOSER_ACTION_OPEN
Свойство “create-folders”
“create-folders” gboolean
Определяет, будет ли файловый диалог в режиме, отличном от GTK_FILE_CHOOSER_ACTION_OPEN, предлагать пользователю создавать новые папки.
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Since: 2.18
Свойство “do-overwrite-confirmation”
“do-overwrite-confirmation” gboolean
Определяет, будет ли файловый диалог в режиме GTK_FILE_CHOOSER_ACTION_SAVE отображать диалоговое окно подтверждения перезаписи, если пользователь выбирает имя файла, которое уже существует.
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Since: 2.8
Свойство “extra-widget”
“extra-widget” GtkWidget *
Принадлежащий приложению виджет для дополнительных опций.
Флаги: Чтение / Запись
Свойство “filter”
“filter” GtkFileFilter *
Текущий фильтр для выбора отображаемых файлов.
Флаги: Чтение / Запись
Свойство “local-only”
“local-only” gboolean
Определяет, должны ли выбранные файлы быть ограничены локальными URL-адресами файлов.
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “preview-widget”
“preview-widget” GtkWidget *
Принадлежащий приложению виджет для пользовательских предварительных просмотров.
Флаги: Чтение / Запись
Свойство “preview-widget-active”
“preview-widget-active” gboolean
Определяет, должен ли принадлежащий приложению виджет для пользовательских предварительных просмотров отображаться.
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “select-multiple”
“select-multiple” gboolean
Разрешает ли выбор нескольких файлов.
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “show-hidden”
“show-hidden” gboolean
Определяет, должны ли отображаться скрытые файлы и папки.
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “use-preview-label”
“use-preview-label” gboolean
Определяет, отображать ли стандартную метку с именем предварительно просматриваемого файла.
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Подробное описание сигналов
Сигнал “confirm-overwrite”
GtkFileChooserConfirmation user_function (GtkFileChooser *chooser, gpointer user_data)
Этот сигнал генерируется всякий раз, когда необходимо отобразить диалог подтверждения, если пользователь выбрал имя файла, которое уже существует. Сигнал генерируется только когда файловый выборщик находится в режиме GTK_FILE_CHOOSER_ACTION_SAVE.
Большинству приложений достаточно включить свойство “do-overwrite-confirmation” (или вызвать функцию gtk_file_chooser_set_do_overwrite_confirmation()), и они автоматически получат стандартный диалог подтверждения. Приложения, которым нужно настроить это поведение, должны сделать это и подключиться к сигналу “confirm-overwrite”.
Обработчик этого сигнала должен вернуть значение GtkFileChooserConfirmation, которое указывает действие, которое следует предпринять. Если обработчик определит, что пользователь хочет выбрать другое имя файла, он должен вернуть GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN. Если он определит, что пользователь удовлетворен выбором имени файла, он должен вернуть GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME. С другой стороны, если он определит, что следует использовать стандартный диалог подтверждения, он должен вернуть GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM. Следующий пример иллюстрирует это.
Настройка подтверждения
{ GtkImage*preview; ... preview =gtk_image_new(); gtk_file_chooser_set_preview_widget(my_file_chooser, preview); g_signal_connect(my_file_chooser,"update-preview", G_CALLBACK(update_preview_cb), preview); } staticvoid update_preview_cb(GtkFileChooser*file_chooser,gpointer data) { GtkWidget*preview; char*filename; GdkPixbuf*pixbuf; gboolean have_preview; preview =GTK_WIDGET(data); filename =gtk_file_chooser_get_preview_filename(file_chooser); pixbuf =gdk_pixbuf_new_from_file_at_size(filename,128,128, NULL); have_preview =(pixbuf != NULL); g_free(filename); gtk_image_set_from_pixbuf(GTK_IMAGE(preview), pixbuf); if(pixbuf) g_object_unref(pixbuf); gtk_file_chooser_set_preview_widget_active(file_chooser, have_preview); }
Параметры
chooser | объект, получивший сигнал. | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Возвращаемое значение
значение GtkFileChooserConfirmation, которое указывает, какое действие следует выполнить после генерации сигнала.
Флаги: Выполнить последним
С версии: 2.8
Сигнал “current-folder-changed”
void user_function (GtkFileChooser *chooser, gpointer user_data)
Этот сигнал генерируется при изменении текущей папки в GtkFileChooser. Это может произойти из-за действий пользователя, изменяющих папки, таких как выбор закладки или переход к папке в списке файлов. Это также может произойти в результате вызова функции для явного изменения текущей папки в файловом выборщике.
Обычно вам не нужно подключаться к этому сигналу, если вам не нужно отслеживать, какую папку отображает файловый выборщик.
См. также: gtk_file_chooser_set_current_folder(), gtk_file_chooser_get_current_folder(), gtk_file_chooser_set_current_folder_uri(), gtk_file_chooser_get_current_folder_uri().
Параметры
chooser | объект, получивший сигнал. | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнить последним
Сигнал “file-activated”
void user_function (GtkFileChooser *chooser, gpointer user_data)
Этот сигнал генерируется, когда пользователь «активирует» файл в файловом выборщике. Это может произойти при двойном щелчке файла в списке файлов или при нажатии Enter.
Обычно вам не нужно подключаться к этому сигналу. Он используется внутри GtkFileChooserDialog для определения момента активации кнопки по умолчанию в диалоге.
См. также: gtk_file_chooser_get_filename(), gtk_file_chooser_get_filenames(), gtk_file_chooser_get_uri(), gtk_file_chooser_get_uris().
Параметры
chooser | объект, получивший сигнал. | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнить последним
Сигнал “selection-changed”
void user_function (GtkFileChooser *chooser, gpointer user_data)
Этот сигнал генерируется при изменении набора выбранных файлов в GtkFileChooser. Это может произойти, когда пользователь изменяет выбор с помощью мыши или клавиатуры, или при явном вызове функций для изменения выбора.
Обычно вам не нужно подключаться к этому сигналу, так как проще подождать завершения работы файлового выборщика и получить список выбранных файлов с помощью функций, упомянутых ниже.
См. также: gtk_file_chooser_select_filename(), gtk_file_chooser_unselect_filename(), gtk_file_chooser_get_filename(), gtk_file_chooser_get_filenames(), gtk_file_chooser_select_uri(), gtk_file_chooser_unselect_uri(), gtk_file_chooser_get_uri(), gtk_file_chooser_get_uris().
Параметры
chooser | объект, получивший сигнал. | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнить последним
Сигнал “update-preview”
void user_function (GtkFileChooser *chooser, gpointer user_data)
Этот сигнал генерируется, когда предварительный просмотр в файловом диалоге должен быть пересоздан. Например, это может произойти при изменении текущего выбранного файла. Вам следует использовать этот сигнал, если вы хотите, чтобы ваш файловый диалог имел виджет предварительного просмотра.
После установки виджета предварительного просмотра с помощью gtk_file_chooser_set_preview_widget(), вам необходимо обновить его при получении этого сигнала. Вы можете использовать функции gtk_file_chooser_get_preview_filename() или gtk_file_chooser_get_preview_uri() для получения имени файла для предварительного просмотра. Возможно, ваш виджет не сможет просмотреть все типы файлов; ваш обработчик должен вызвать gtk_file_chooser_set_preview_widget_active(), чтобы сообщить файловому диалогу об успешном или неуспешном создании предварительного просмотра.
См. пример кода в Примере использования виджета предварительного просмотра.
См. также: gtk_file_chooser_set_preview_widget(), gtk_file_chooser_set_preview_widget_active(), gtk_file_chooser_set_use_preview_label(), gtk_file_chooser_get_preview_filename(), gtk_file_chooser_get_preview_uri().
Параметры
chooser | объект, получивший сигнал. | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнять последним
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.20/GtkFileChooser.html