Spec-Zone.ru › GTK 3.20

GtkFileChooserDialog

GtkFileChooserDialog — Диалоговое окно выбора файла, подходящее для команд «Файл/Открыть» или «Файл/Сохранить»

Функции

GtkWidget * gtk_file_chooser_dialog_new ()

Типы и значения

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 предполагает, что его действие типа «принять», например, кнопка «Открыть» или «Сохранить», будет иметь один из следующих кодов ответа:

  • GTK_RESPONSE_ACCEPT

  • GTK_RESPONSE_OK

  • GTK_RESPONSE_YES

  • GTK_RESPONSE_APPLY

Это происходит потому, что 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

Заголовок диалогового окна или NULL.

[allow-none]

parent

Временный родитель диалогового окна или NULL.

[allow-none]

action

Режим диалогового окна для открытия или сохранения

first_button_text

идентификатор или текст для первой кнопки или NULL.

[allow-none]

...

идентификатор ответа для первой кнопки, затем дополнительные пары (кнопка, идентификатор), завершающиеся NULL

Возвращаемое значение

Новое диалоговое окно 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.20/GtkFileChooserDialog.html

Spec-Zone.ru

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