GtkFileChooser
GtkFileChooser — Интерфейс выбора файла, используемый GtkFileChooserWidget и GtkFileChooserDialog
Функции
Свойства
| GtkFileChooserAction | action | Чтение / Запись |
| gboolean | create-folders | Чтение / Запись |
| gboolean | do-overwrite-confirmation | Чтение / Запись |
| GtkWidget * | extra-widget | Чтение / Запись |
| GtkFileFilter * | filter | Чтение / Запись |
| gboolean | local-only | Чтение / Запись |
| GtkWidget * | preview-widget | Чтение / Запись |
| gboolean | preview-widget-active | Чтение / Запись |
| gboolean | select-multiple | Чтение / Запись |
| gboolean | show-hidden | Чтение / Запись |
| gboolean | use-preview-label | Чтение / Запись |
Сигналы
Типы и значения
| 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 позволяет быстро переходить к различным местам в файловой системе. В стандартной реализации они отображаются в левой панели. Возможно, сначала будет немного непонятно, что эти ярлыки берутся из различных источников и имеют различные формы, поэтому давайте объясним терминологию:
Закладки: создаются пользователем, перетаскивая папки из правой панели в левую или используя функцию «Добавить». Закладки могут быть переименованы и удалены пользователем.
Ярлыки: могут предоставляться приложением. Например, программа «Рисование» может добавить ярлык для папки «Клипарты». Ярлыки не могут быть изменены пользователем.
Тома: предоставляются базовой абстракцией файловой системы. Они являются «корнями» файловой системы.
Имена файлов и кодировки
Когда пользователь завершает выбор файлов в 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, а не имя файла. Эта функция предназначена для использования, например, в качестве предлагаемого имени в диалоговом окне «Сохранить как…». Вы можете передать «Untitled.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 |
Возвращает
a 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 (по умолчанию), локальный URI будет возвращён для всех расположений FUSE. Освободите с помощью 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 для выбора |
Возвращает
Не используется.
С: 2.4
gtk_file_chooser_unselect_uri ()
void gtk_file_chooser_unselect_uri (GtkFileChooser *chooser,const char *uri);
Отменяет выбор файла, на который ссылается uri. Если файл не находится в текущем каталоге, не существует или по другим причинам не выбран, ничего не делает.
Параметры
chooser | ||
uri | URI для отмены выбора |
С: 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]
С: 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 для новой текущей папки |
С: 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]
С: 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 | виджет для отображения предварительного просмотра. |
С: 2.4
gtk_file_chooser_get_preview_widget ()
GtkWidget *
gtk_file_chooser_get_preview_widget (GtkFileChooser *chooser); Получает текущий виджет предварительного просмотра; см. gtk_file_chooser_set_preview_widget().
Параметры
chooser |
С: 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 имя_файла]
С момента: 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 принимает владение фильтром, поэтому вам нужно выполнять ref и sink, если вы хотите сохранить ссылку.
Параметры
chooser | ||
filter | [transfer full] |
С момента: 2.4
gtk_file_chooser_remove_filter ()
void gtk_file_chooser_remove_filter (GtkFileChooser *chooser,GtkFileFilter *filter);
Удаляет filter из списка фильтров, между которыми пользователь может выбирать.
Параметры
chooser | ||
filter |
С: 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 |
Возвращаемое значение
a 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 | ||
filter |
С: 2.4
gtk_file_chooser_get_filter ()
GtkFileFilter *
gtk_file_chooser_get_filter (GtkFileChooser *chooser); Возвращает текущий фильтр; см. gtk_file_chooser_set_filter().
Параметры
chooser |
С: 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 | ||
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 | ||
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 |
Возвращаемое значение
Список имен файлов папок или 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 |
Возвращает
Список URI папок или 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 |
С: 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); } static void 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 | данные пользователя, установленные при подключении обработчика сигналов. |
Флаги: Run Last
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkFileChooser.html