GtkFileChooser
GtkFileChooser — Интерфейс выбора файлов, используемый GtkFileChooserWidget и GtkFileChooserDialog
Функции
Свойства
| GtkFileChooserAction | action | Чтение / Запись |
| gboolean | create-folders | Чтение / Запись |
| GtkFileFilter * | filter | Чтение / Запись |
| GListModel * | filters | Чтение |
| gboolean | select-multiple | Чтение / Запись |
| GListModel * | shortcut-folders | Чтение |
Типы и Значения
| GtkFileChooser | |
| перечисление | GtkFileChooserAction |
| #определить | GTK_FILE_CHOOSER_ERROR |
| перечисление | GtkFileChooserError |
Иерархия объектов
GInterface ╰── GtkFileChooser
Предварительные условия
GtkFileChooser требует GObject.
Известные реализации
GtkFileChooser реализован в GtkFileChooserDialog, GtkFileChooserNative и GtkFileChooserWidget.
Включения
#include <gtk/gtk.h>
Описание
GtkFileChooser — это интерфейс, который может быть реализован виджетами выбора файлов. В GTK основные объекты, реализующие этот интерфейс, это GtkFileChooserWidget и GtkFileChooserDialog. Вам не нужно писать объект, реализующий интерфейс GtkFileChooser, если вы не пытаетесь адаптировать существующий селектор файлов для экспонирования стандартного интерфейса программирования.
GtkFileChooser позволяет создавать ярлыки к различным местам в файловой системе. В реализации по умолчанию они отображаются в левой панели. Возможно, сначала будет немного непонятно, что эти ярлыки поступают из различных источников и имеют различные варианты, поэтому давайте объясним здесь терминологию:
Закладки: создаются пользователем, перетаскиванием папок из правой панели в левую, или с помощью команды «Добавить». Пользователь может переименовывать и удалять закладки.
Ярлыки: могут быть предоставлены приложением. Например, программа «Рисование» может захотеть добавить ярлык для папки «Клипарты». Ярлыки не могут быть изменены пользователем.
Тома: предоставляются базовой абстракцией файловой системы. Они являются «корнями» файловой системы.
Имена и кодировки файлов
Когда пользователь закончит выбор файлов в GtkFileChooser, ваша программа может получить выбранные имена файлов в виде GFiles.
Добавление опций
Вы можете добавить дополнительные виджеты к файловому селектору для предоставления опций, которых нет в стандартном дизайне, используя gtk_file_chooser_add_choice(). Каждая опция имеет идентификатор и видимое пользователю имя; кроме того, каждая опция может иметь несколько вариантов. Если опция не имеет вариантов, она будет отображена как флажок с заданным именем; если у опции есть варианты, она будет отображена как раскрывающийся список.
Функции
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 | действие, выполняемое выбором файла |
gtk_file_chooser_get_action ()
GtkFileChooserAction
gtk_file_chooser_get_action (GtkFileChooser *chooser); Получает тип операции, выполняемой выбором файла; см. gtk_file_chooser_set_action().
Параметры
chooser |
Возвращает
действие, выполняемое выбором файла
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 |
|
gtk_file_chooser_get_select_multiple ()
gboolean
gtk_file_chooser_get_select_multiple (GtkFileChooser *chooser); Получает возможность выбора нескольких файлов в диалоге. См. gtk_file_chooser_set_select_multiple().
Параметры
chooser |
Возвращает
TRUE если можно выбирать несколько файлов.
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 |
|
gtk_file_chooser_get_create_folders ()
gboolean
gtk_file_chooser_get_create_folders (GtkFileChooser *chooser); Получает, будет ли диалог выбора файлов предлагать создание новых папок. См. gtk_file_chooser_set_create_folders().
Параметры
chooser |
Возвращает
TRUE если кнопка "Создать папку" должна быть отображена.
gtk_file_chooser_set_current_name ()
void gtk_file_chooser_set_current_name (GtkFileChooser *chooser,const char *name);
Устанавливает текущее имя в диалоге выбора файла, как если бы его ввёл пользователь. Обратите внимание, что переданное имя — строка UTF-8, а не имя файла. Эта функция предназначена для использования в качестве предлагаемого имени в диалоге «Сохранить как…». Вы можете передать «Untitled.doc» или аналогичное предложение для name .
Если вы хотите предварительно выбрать определённый существующий файл, используйте gtk_file_chooser_set_file() вместо этого.
См. документацию по этим функциям для примера использования gtk_file_chooser_set_current_name() также.
Параметры
chooser | ||
name | имя файла для использования, как строка UTF-8. | [type utf8] |
gtk_file_chooser_get_current_name ()
char *
gtk_file_chooser_get_current_name (GtkFileChooser *chooser); Получает текущее имя в диалоге выбора файла, введённое пользователем в поле «Имя».
Предназначено для использования в диалогах сохранения, для получения текущего введённого имени файла, когда сам файл ещё не существует.
Параметры
chooser |
Возвращает
Сырой текст из поля «Имя» диалога выбора файла. Освободите его с помощью g_free(). Обратите внимание, что эта строка не является полным путём или URI; это содержимое поля. Также обратите внимание, что эта строка закодирована в UTF-8, что необязательно является кодировкой системы для имён файлов.
gtk_file_chooser_get_file ()
GFile *
gtk_file_chooser_get_file (GtkFileChooser *chooser); Получает GFile для выбранного файла в диалоге. Если выбрано несколько файлов, будет возвращён один из них случайным образом.
Если диалог работает в режиме выбора папки, эта функция возвращает выбранную папку.
Параметры
chooser |
Возвращает
выбранный GFile. Вы владеете возвращённым файлом; используйте g_object_unref() для его освобождения.
[transfer full]
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 .
Обратите внимание, что файл должен существовать, иначе ничего не произойдёт, кроме изменения каталога.
Если вы реализуете диалог сохранения, используйте эту функцию, если у вас уже есть имя файла, в который пользователь может сохранить; например, когда пользователь открывает существующий файл, а затем нажимает «Сохранить как…». Если у вас нет имени файла — например, если пользователь только что создал новый файл и сохраняет его в первый раз, не вызывайте эту функцию. Вместо этого используйте что-то подобное:
static void
prepare_file_chooser (GtkFileChooser *chooser,
GFile *existing_file)
{
gboolean document_is_new = (existing_file == NULL);
if (document_is_new)
{
GFile *default_file_for_saving = g_file_new_for_path ("./out.txt");
// the user just created a new document
gtk_file_chooser_set_current_folder (chooser, default_file_for_saving, NULL);
gtk_file_chooser_set_current_name (chooser, "Untitled document");
g_object_unref (default_file_for_saving);
}
else
{
// the user edited an existing document
gtk_file_chooser_set_file (chooser, existing_file, NULL);
}
}Параметры
chooser | ||
file | the GFile to set as current | |
error | место для хранения ошибки, или | [allow-none] |
Возвращает
Не используется.
gtk_file_chooser_get_files ()
GListModel *
gtk_file_chooser_get_files (GtkFileChooser *chooser); Список всех выбранных файлов и подпапок в текущей папке chooser в виде GFile.
Параметры
chooser |
Возвращает
модель списка, содержащую GFile для каждого выбранного файла и подпапки в текущей папке. Освободите возвращённый список с помощью g_object_unref().
[transfer full]
gtk_file_chooser_set_current_folder ()
gboolean gtk_file_chooser_set_current_folder (GtkFileChooser *chooser,GFile *file,GError **error);
Устанавливает текущую папку для chooser из GFile.
Параметры
chooser | ||
file | the GFile для новой папки | |
error | место для хранения ошибки, или |
Возвращает
TRUE если папка была успешно изменена, FALSE в противном случае.
gtk_file_chooser_get_current_folder ()
GFile *
gtk_file_chooser_get_current_folder (GtkFileChooser *chooser); Получает текущую папку для chooser в виде GFile.
Параметры
chooser |
Возвращает
the GFile для текущей папки.
[transfer full]
gtk_file_chooser_add_filter ()
void gtk_file_chooser_add_filter (GtkFileChooser *chooser,GtkFileFilter *filter);
Добавляет filter в список фильтров, которые может выбрать пользователь. При выборе фильтра отображаются только файлы, прошедшие этот фильтр.
Обратите внимание, что chooser получает владение фильтром, если он плавающий, поэтому вам нужно его ссылать и освобождать, если вы хотите сохранить ссылку.
Параметры
chooser | ||
filter | [transfer none] |
gtk_file_chooser_remove_filter ()
void gtk_file_chooser_remove_filter (GtkFileChooser *chooser,GtkFileFilter *filter);
Удаляет filter из списка фильтров, которые может выбрать пользователь.
Параметры
chooser | ||
filter |
gtk_file_chooser_get_filters ()
GListModel *
gtk_file_chooser_get_filters (GtkFileChooser *chooser); Возвращает текущий набор фильтров, выбираемых пользователем, в виде модели списка; см. gtk_file_chooser_add_filter(), gtk_file_chooser_remove_filter().
Не следует изменять возвращённую модель списка. Будущие изменения chooser могут или не могут повлиять на возвращённую модель.
Параметры
chooser |
Возвращает
a GListModel содержащий текущий набор фильтров, выбираемых пользователем.
[transfer full]
gtk_file_chooser_set_filter ()
void gtk_file_chooser_set_filter (GtkFileChooser *chooser,GtkFileFilter *filter);
Устанавливает текущий фильтр; отображаются только файлы, проходящие по этому фильтру. Если список фильтров, выбираемых пользователем, не пуст, то фильтр должен быть одним из фильтров в этом списке. Установка текущего фильтра, когда список фильтров пуст, полезна, если вы хотите ограничить отображаемый набор файлов, не позволяя пользователю его изменять.
Параметры
chooser | ||
filter |
gtk_file_chooser_get_filter ()
GtkFileFilter *
gtk_file_chooser_get_filter (GtkFileChooser *chooser); Получает текущий фильтр; см. gtk_file_chooser_set_filter().
Параметры
chooser |
Возвращает
текущий фильтр, или NULL.
[nullable][transfer none]
gtk_file_chooser_add_shortcut_folder ()
gboolean gtk_file_chooser_add_shortcut_folder (GtkFileChooser *chooser,GFile *folder,GError **error);
Добавляет папку для отображения со значками папок в диалоге выбора файла.
Параметры
chooser | ||
folder | a GFile для папки для добавления | |
error | место для хранения ошибки, или |
Возвращает
TRUE если папка была успешно добавлена, FALSE в противном случае.
gtk_file_chooser_remove_shortcut_folder ()
gboolean gtk_file_chooser_remove_shortcut_folder (GtkFileChooser *chooser,GFile *folder,GError **error);
Удаляет папку из папок-ярлыков в диалоге выбора файла.
Параметры
chooser | ||
folder | a GFile для папки для удаления | |
error | место для хранения ошибки, или |
Возвращает
TRUE если папка была успешно удалена, FALSE в противном случае.
gtk_file_chooser_get_shortcut_folders ()
GListModel *
gtk_file_chooser_get_shortcut_folders (GtkFileChooser *chooser); Запрашивает список папок ярлыков в файловом выборе, установленных с помощью gtk_file_chooser_add_shortcut_folder().
Не следует изменять возвращённый список моделей. Будущие изменения в chooser могут или не могут повлиять на возвращаемую модель.
Параметры
chooser | объект GtkFileChooser |
Возвращаемое значение
Модель списка объектов GFiles.
[transfer full]
gtk_file_chooser_add_choice ()
void gtk_file_chooser_add_choice (GtkFileChooser *chooser,const char *id,const char *label,const char **options,const char **option_labels);
Добавляет «выбор» в файловый выбор. Обычно это реализуется как раскрывающийся список или, для логических выборов, как флажок. Можно выбрать значение с помощью gtk_file_chooser_set_choice() перед отображением диалога, и можно получить выбранное пользователем значение в обработчике сигнала ::response с помощью gtk_file_chooser_get_choice().
Параметры
chooser | объект GtkFileChooser | |
id | идентификатор добавленного выбора | |
label | видимая пользователю метка добавленного выбора | |
options | идентификаторы вариантов выбора, или | [nullable][array zero-terminated=1] |
option_labels | видимые пользователю метки вариантов, длина должна быть такой же, как у | [nullable][array zero-terminated=1] |
gtk_file_chooser_remove_choice ()
void gtk_file_chooser_remove_choice (GtkFileChooser *chooser,const char *id);
Удаляет «выбор», добавленный с помощью gtk_file_chooser_add_choice().
Параметры
chooser | объект GtkFileChooser | |
id | идентификатор выбора для удаления |
gtk_file_chooser_set_choice ()
void gtk_file_chooser_set_choice (GtkFileChooser *chooser,const char *id,const char *option);
Выбирает вариант в «выборе», добавленном с помощью gtk_file_chooser_add_choice(). Для логического выбора возможные варианты — «true» и «false».
Параметры
chooser | объект GtkFileChooser | |
id | идентификатор выбора для установки | |
option | идентификатор варианта для выбора |
gtk_file_chooser_get_choice ()
const char * gtk_file_chooser_get_choice (GtkFileChooser *chooser,const char *id);
Получает текущий выбранный вариант в «выборе» с заданным идентификатором.
Параметры
chooser | объект GtkFileChooser | |
id | идентификатор выбора для получения |
Возвращаемое значение
Идентификатор текущего выбранного варианта
Типы и значения
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_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
Тип операции, выполняемой селектором файла.
Владелец: GtkFileChooser
Флаги: Чтение / Запись
Значение по умолчанию: GTK_FILE_CHOOSER_ACTION_OPEN
Свойство “create-folders”
“create-folders” gboolean
Указывает, будет ли файловый выборщик в режиме, отличном от GTK_FILE_CHOOSER_ACTION_OPEN, предлагать пользователю создавать новые папки.
Владелец: GtkFileChooser
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “filter”
“filter” GtkFileFilter *
Текущий фильтр для выбора отображаемых файлов.
Владелец: GtkFileChooser
Флаги: Чтение / Запись
Свойство “filters”
“filters” GListModel *
Список GListModel, содержащий фильтры, добавленные с помощью gtk_file_chooser_add_filter().
Возвращаемый объект не должен изменяться. Он может или не может быть обновлён для последующих изменений.
Владелец: GtkFileChooser
Флаги: Чтение
Свойство “select-multiple”
“select-multiple” gboolean
Разрешить выбор нескольких файлов.
Владелец: GtkFileChooser
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “shortcut-folders”
“shortcut-folders” GListModel *
Список GListModel, содержащий папки ярлыков, добавленные с помощью gtk_file_chooser_add_shortcut_folder().
Возвращаемый объект не должен изменяться. Он может или не может быть обновлён для последующих изменений.
Владелец: GtkFileChooser
Флаги: Чтение
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkFileChooser.html