GtkFileChooserDialog
GtkFileChooserDialog — Диалоговое окно выбора файла, подходящее для команд «Файл/Открыть» или «Файл/Сохранить»
Функции
Типы и значения
| struct | GtkFileChooserDialog |
Иерархия объектов
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkContainer ╰── GtkBin ╰── GtkWindow ╰── GtkDialog ╰── GtkFileChooserDialog
Реализованные интерфейсы
GtkFileChooserDialog реализует AtkImplementorIface, GtkBuildable и GtkFileChooser.
Файлы заголовков
#include <gtk/gtk.h>
Описание
GtkFileChooserDialog — это диалоговое окно, подходящее для использования с командами «Файл/Открыть» или «Файл/Сохранить как». Этот виджет работает, помещая GtkFileChooserWidget внутрь GtkDialog. Он экспонирует интерфейс GtkFileChooser, поэтому вы можете использовать все функции GtkFileChooser в диалоговом окне выбора файла, а также функции GtkDialog.
Обратите внимание, что у GtkFileChooserDialog нет собственных методов. Вместо этого вы должны использовать функции, работающие с GtkFileChooser.
Если вы хотите обеспечить хорошую интеграцию с платформой, вы должны использовать API GtkFileChooserNative, который будет использовать платформенно-специфическое диалоговое окно, если оно доступно, и в противном случае использовать GtkFileChooserDialog.
Типичное использование
В простейшем случае вы можете использовать следующий код, чтобы использовать GtkFileChooserDialog для выбора файла для открытия:
Для использования диалогового окна для сохранения вы можете использовать это:
Настройка диалогового окна выбора файла
Существуют различные случаи, в которых вам может потребоваться использовать GtkFileChooserDialog:
Для выбора файла для открытия. Используйте GTK_FILE_CHOOSER_ACTION_OPEN.
Для сохранения файла впервые. Используйте GTK_FILE_CHOOSER_ACTION_SAVE и предложите имя, такое как «Без названия», с помощью
gtk_file_chooser_set_current_name().Для сохранения файла под другим именем. Используйте GTK_FILE_CHOOSER_ACTION_SAVE и установите существующее имя файла с помощью
gtk_file_chooser_set_filename().Для выбора папки вместо файла. Используйте GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
Обратите внимание, что в старых версиях документации по выбору файлов предлагалось использовать gtk_file_chooser_set_current_folder() в различных ситуациях, с намерением позволить приложению предложить разумную папку по умолчанию. Это больше не считается хорошей политикой, так как теперь окно выбора файла способно самостоятельно предлагать хорошие варианты. В общем случае, вы должны заставить окно выбора файла показать определённую папку только тогда, когда это уместно использовать gtk_file_chooser_set_filename(), то есть когда вы выполняете команду «Сохранить как» и у вас уже есть файл, сохраненный где-то.
Коды ответа
GtkFileChooserDialog унаследован от GtkDialog, поэтому кнопки в области действий имеют коды ответов, такие как GTK_RESPONSE_ACCEPT и GTK_RESPONSE_CANCEL. Например, вы могли бы вызвать gtk_file_chooser_dialog_new() следующим образом:
GtkWidget *dialog; GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN; gint res; dialog = gtk_file_chooser_dialog_new ("Open File", parent_window, action, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); res = gtk_dialog_run (GTK_DIALOG (dialog)); if (res == GTK_RESPONSE_ACCEPT) { char *filename; GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog); filename = gtk_file_chooser_get_filename (chooser); open_file (filename); g_free (filename); } gtk_widget_destroy (dialog);
Это создаст кнопки «Отмена» и «Открыть», которые используют стандартные идентификаторы ответов из GtkResponseType. Для большинства диалоговых окон вы можете использовать свои собственные пользовательские коды ответов вместо тех, что в GtkResponseType, но GtkFileChooserDialog предполагает, что его действие типа «принять», например, кнопка «Открыть» или «Сохранить», будет иметь один из следующих кодов ответа:
Это связано с тем, что GtkFileChooserDialog должен перехватывать ответы и переключаться на папки, если это необходимо, а не позволять диалоговому окну завершиться — реализация использует эти известные коды ответов, чтобы знать, какие ответы можно заблокировать, если это уместно.
Подводя итог, убедитесь, что вы используете стандартный код ответа, когда используете GtkFileChooserDialog, чтобы обеспечить правильную работу.
Функции
gtk_file_chooser_dialog_new ()
GtkWidget * gtk_file_chooser_dialog_new (const gchar *title,GtkWindow *parent,GtkFileChooserAction action,const gchar *first_button_text,...);
Создаёт новое диалоговое окно GtkFileChooserDialog. Эта функция аналогична gtk_dialog_new_with_buttons().
Параметры
title | Заголовок диалогового окна или | [allow-none] |
parent | Транзиентный родитель диалогового окна или | [allow-none] |
action | Режим диалогового окна: открыть или сохранить | |
first_button_text | Идентификатор или текст для первой кнопки, или | [allow-none] |
... | Идентификатор ответа для первой кнопки, затем дополнительные пары (кнопка, id), заканчивающиеся |
Возвращает
новое диалоговое окно GtkFileChooserDialog
Since: 2.4
Типы и значения
struct GtkFileChooserDialog
struct GtkFileChooserDialog;
См. также
GtkFileChooser, GtkDialog, GtkFileChooserNative
© 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/GtkFileChooserDialog.html