Spec-Zone.ru › GTK 4.0

GtkFileChooser

GtkFileChooser — Интерфейс выбора файлов, используемый GtkFileChooserWidget и GtkFileChooserDialog

Функции

void gtk_file_chooser_set_action ()
GtkFileChooserAction gtk_file_chooser_get_action ()
void gtk_file_chooser_set_select_multiple ()
gboolean gtk_file_chooser_get_select_multiple ()
void gtk_file_chooser_set_create_folders ()
gboolean gtk_file_chooser_get_create_folders ()
void gtk_file_chooser_set_current_name ()
char * gtk_file_chooser_get_current_name ()
GFile * gtk_file_chooser_get_file ()
gboolean gtk_file_chooser_set_file ()
GListModel * gtk_file_chooser_get_files ()
gboolean gtk_file_chooser_set_current_folder ()
GFile * gtk_file_chooser_get_current_folder ()
void gtk_file_chooser_add_filter ()
void gtk_file_chooser_remove_filter ()
GListModel * gtk_file_chooser_get_filters ()
void gtk_file_chooser_set_filter ()
GtkFileFilter * gtk_file_chooser_get_filter ()
gboolean gtk_file_chooser_add_shortcut_folder ()
gboolean gtk_file_chooser_remove_shortcut_folder ()
GListModel * gtk_file_chooser_get_shortcut_folders ()
void gtk_file_chooser_add_choice ()
void gtk_file_chooser_remove_choice ()
void gtk_file_chooser_set_choice ()
const char * gtk_file_chooser_get_choice ()

Свойства

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

a GtkFileChooser

action

действие, выполняемое выбором файла

gtk_file_chooser_get_action ()

GtkFileChooserAction
gtk_file_chooser_get_action (GtkFileChooser *chooser);

Получает тип операции, выполняемой выбором файла; см. gtk_file_chooser_set_action().

Параметры

chooser

a GtkFileChooser

Возвращает

действие, выполняемое выбором файла

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

a GtkFileChooser

select_multiple

TRUE если можно выбирать несколько файлов.

gtk_file_chooser_get_select_multiple ()

gboolean
gtk_file_chooser_get_select_multiple (GtkFileChooser *chooser);

Получает возможность выбора нескольких файлов в диалоге. См. gtk_file_chooser_set_select_multiple().

Параметры

chooser

a GtkFileChooser

Возвращает

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

a GtkFileChooser

create_folders

TRUE если кнопка "Создать папку" должна быть отображена

gtk_file_chooser_get_create_folders ()

gboolean
gtk_file_chooser_get_create_folders (GtkFileChooser *chooser);

Получает, будет ли диалог выбора файлов предлагать создание новых папок. См. gtk_file_chooser_set_create_folders().

Параметры

chooser

a GtkFileChooser

Возвращает

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

a GtkFileChooser

name

имя файла для использования, как строка UTF-8.

[type utf8]

gtk_file_chooser_get_current_name ()

char *
gtk_file_chooser_get_current_name (GtkFileChooser *chooser);

Получает текущее имя в диалоге выбора файла, введённое пользователем в поле «Имя».

Предназначено для использования в диалогах сохранения, для получения текущего введённого имени файла, когда сам файл ещё не существует.

Параметры

chooser

a GtkFileChooser

Возвращает

Сырой текст из поля «Имя» диалога выбора файла. Освободите его с помощью g_free(). Обратите внимание, что эта строка не является полным путём или URI; это содержимое поля. Также обратите внимание, что эта строка закодирована в UTF-8, что необязательно является кодировкой системы для имён файлов.

gtk_file_chooser_get_file ()

GFile *
gtk_file_chooser_get_file (GtkFileChooser *chooser);

Получает GFile для выбранного файла в диалоге. Если выбрано несколько файлов, будет возвращён один из них случайным образом.

Если диалог работает в режиме выбора папки, эта функция возвращает выбранную папку.

Параметры

chooser

a GtkFileChooser

Возвращает

выбранный 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

a GtkFileChooser

file

the GFile to set as current

error

место для хранения ошибки, или NULL для игнорирования ошибок.

[allow-none]

Возвращает

Не используется.

gtk_file_chooser_get_files ()

GListModel *
gtk_file_chooser_get_files (GtkFileChooser *chooser);

Список всех выбранных файлов и подпапок в текущей папке chooser в виде GFile.

Параметры

chooser

a GtkFileChooser

Возвращает

модель списка, содержащую 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

a GtkFileChooser

file

the GFile для новой папки

error

место для хранения ошибки, или NULL.

Возвращает

TRUE если папка была успешно изменена, FALSE в противном случае.

gtk_file_chooser_get_current_folder ()

GFile *
gtk_file_chooser_get_current_folder (GtkFileChooser *chooser);

Получает текущую папку для chooser в виде GFile.

Параметры

chooser

a GtkFileChooser

Возвращает

the GFile для текущей папки.

[transfer full]

gtk_file_chooser_add_filter ()

void
gtk_file_chooser_add_filter (GtkFileChooser *chooser,
                             GtkFileFilter *filter);

Добавляет filter в список фильтров, которые может выбрать пользователь. При выборе фильтра отображаются только файлы, прошедшие этот фильтр.

Обратите внимание, что chooser получает владение фильтром, если он плавающий, поэтому вам нужно его ссылать и освобождать, если вы хотите сохранить ссылку.

Параметры

chooser

a GtkFileChooser

filter

a GtkFileFilter.

[transfer none]

gtk_file_chooser_remove_filter ()

void
gtk_file_chooser_remove_filter (GtkFileChooser *chooser,
                                GtkFileFilter *filter);

Удаляет filter из списка фильтров, которые может выбрать пользователь.

Параметры

chooser

a GtkFileChooser

filter

a GtkFileFilter

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 GtkFileChooser

Возвращает

a GListModel содержащий текущий набор фильтров, выбираемых пользователем.

[transfer full]

gtk_file_chooser_set_filter ()

void
gtk_file_chooser_set_filter (GtkFileChooser *chooser,
                             GtkFileFilter *filter);

Устанавливает текущий фильтр; отображаются только файлы, проходящие по этому фильтру. Если список фильтров, выбираемых пользователем, не пуст, то фильтр должен быть одним из фильтров в этом списке. Установка текущего фильтра, когда список фильтров пуст, полезна, если вы хотите ограничить отображаемый набор файлов, не позволяя пользователю его изменять.

Параметры

chooser

a GtkFileChooser

filter

a GtkFileFilter

gtk_file_chooser_get_filter ()

GtkFileFilter *
gtk_file_chooser_get_filter (GtkFileChooser *chooser);

Получает текущий фильтр; см. gtk_file_chooser_set_filter().

Параметры

chooser

a GtkFileChooser

Возвращает

текущий фильтр, или NULL.

[nullable][transfer none]

gtk_file_chooser_add_shortcut_folder ()

gboolean
gtk_file_chooser_add_shortcut_folder (GtkFileChooser *chooser,
                                      GFile *folder,
                                      GError **error);

Добавляет папку для отображения со значками папок в диалоге выбора файла.

Параметры

chooser

a GtkFileChooser

folder

a GFile для папки для добавления

error

место для хранения ошибки, или NULL

Возвращает

TRUE если папка была успешно добавлена, FALSE в противном случае.

gtk_file_chooser_remove_shortcut_folder ()

gboolean
gtk_file_chooser_remove_shortcut_folder
                               (GtkFileChooser *chooser,
                                GFile *folder,
                                GError **error);

Удаляет папку из папок-ярлыков в диалоге выбора файла.

Параметры

chooser

a GtkFileChooser

folder

a GFile для папки для удаления

error

место для хранения ошибки, или NULL

Возвращает

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

идентификаторы вариантов выбора, или NULL для логического выбора.

[nullable][array zero-terminated=1]

option_labels

видимые пользователю метки вариантов, длина должна быть такой же, как у options.

[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

Флаги: Чтение

См. также

GtkFileChooserDialog, GtkFileChooserWidget

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API