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] |
... | идентификатор ответа для первой кнопки, а затем дополнительные (кнопка, идентификатор) пары, завершающиеся |
Возвращаемое значение
новое диалоговое окно GtkFileChooserDialog
С: 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.24/GtkFileChooserDialog.html