GtkFileChooserNative

已弃用:4.10 

描述 [src]

final class Gtk.FileChooserNative : Gtk.NativeDialog
  implements Gtk.FileChooser {
  /* No available fields */
}

GtkFileChooserNative 是适用于“打开文件”或“另存为”命令的对话框抽象。

默认情况下,这仅使用 GtkFileChooserDialog 来实现实际的对话框。然而,在某些平台(例如 Windows 和 macOS)上,则使用本机平台文件选择器。当应用程序在没有直接文件系统访问权限的沙箱环境(例如 Flatpak)中运行时,GtkFileChooserNative 可能会调用适当的 API(门户)以允许用户选择文件并将其提供给应用程序。

虽然 GtkFileChooserNativeAPIGtkFileChooserDialog 非常相似,但主要区别在于对话框没有任何 GtkWindowGtkWidget 可以访问。这是必需的,因为在平台本机对话框的情况下可能没有访问权限。

显示、隐藏和运行对话框是由 GtkNativeDialog 函数处理的。

请注意,与 GtkFileChooserDialog 不同,GtkFileChooserNative 对象不是顶级窗口小部件,并且 GTK 不会使其保持活动状态。在完成使用对象之前,由您负责保留一个引用。

典型用法

在最简单的情况下,您可以使用以下代码来使用 GtkFileChooserNative 选择要打开的文件

static void
on_response (GtkNativeDialog *native,
             int              response)
{
  if (response == GTK_RESPONSE_ACCEPT)
    {
      GtkFileChooser *chooser = GTK_FILE_CHOOSER (native);
      GFile *file = gtk_file_chooser_get_file (chooser);

      open_file (file);

      g_object_unref (file);
    }

  g_object_unref (native);
}

  // ...
  GtkFileChooserNative *native;
  GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;

  native = gtk_file_chooser_native_new ("Open File",
                                        parent_window,
                                        action,
                                        "_Open",
                                        "_Cancel");

  g_signal_connect (native, "response", G_CALLBACK (on_response), NULL);
  gtk_native_dialog_show (GTK_NATIVE_DIALOG (native));

要将 GtkFileChooserNative 用于保存,您可以使用此方法

static void
on_response (GtkNativeDialog *native,
             int              response)
{
  if (response == GTK_RESPONSE_ACCEPT)
    {
      GtkFileChooser *chooser = GTK_FILE_CHOOSER (native);
      GFile *file = gtk_file_chooser_get_file (chooser);

      save_to_file (file);

      g_object_unref (file);
    }

  g_object_unref (native);
}

  // ...
  GtkFileChooserNative *native;
  GtkFileChooser *chooser;
  GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE;

  native = gtk_file_chooser_native_new ("Save File",
                                        parent_window,
                                        action,
                                        "_Save",
                                        "_Cancel");
  chooser = GTK_FILE_CHOOSER (native);

  if (user_edited_a_new_document)
    gtk_file_chooser_set_current_name (chooser, _("Untitled document"));
  else
    gtk_file_chooser_set_file (chooser, existing_file, NULL);

  g_signal_connect (native, "response", G_CALLBACK (on_response), NULL);
  gtk_native_dialog_show (GTK_NATIVE_DIALOG (native));

有关如何最佳设置文件对话框的更多信息,请参阅 GtkFileChooserDialog 文档。

响应代码

GtkFileChooserNative 继承自 GtkNativeDialog,这意味着如果用户接受,它将返回 GTK_RESPONSE_ACCEPT,如果用户按取消,它将返回 GTK_RESPONSE_CANCEL。如果意外关闭窗口,它还可以返回 GTK_RESPONSE_DELETE_EVENT

GtkFileChooserDialog 的差异

GtkFileChooser 界面中有一些内容无法与 GtkFileChooserNative 一起使用,因为使用这些内容会禁止使用本机对话框。

对话框处于可见状态时,任何更改对话框的操作都不会起作用。在显示对话框之前,请设置所需的所有属性。

Win32 详细信息

在 Windows 上使用了 IFileDialog 实现(在 Windows Vista 中添加)。它支持 GtkFileChooser 拥有的许多功能,但有些事情它无法处理

如果使用了这些功能中的任何一个,将使用常规 GtkFileChooserDialog 来代替本机功能。

门户详细信息

org.freedesktop.portal.FileChooser 门户在会话总线上可用时,它用于启动一个外部进程文件选择器。根据应用程序运行的会话类型,这可能是一个 GTK 文件选择器,也可能不是。

macOS 详细信息

在 macOS 上,NSSavePanelNSOpenPanel 类用于提供本机文件选择器对话框。GtkFileChooser 提供的某些功能不受支持

  • 快捷方式文件夹。

已舍弃:4.10

转而使用 GtkFileDialog

层次结构

hierarchy this GtkFileChooserNative implements_0 GtkFileChooser this--implements_0 ancestor_0 GtkNativeDialog ancestor_0--this ancestor_1 GObject ancestor_1--ancestor_0

构造函数

gtk_file_chooser_native_new

创建新的 GtkFileChooserNative

已弃用:4.10 

实例方法

gtk_file_chooser_native_get_accept_label

检索 accept 按钮的自定义标签文本。

已弃用:4.10 

gtk_file_chooser_native_get_cancel_label

检索 cancel 按钮的自定义标签文本。

已弃用:4.10 

gtk_file_chooser_native_set_accept_label

设置 accept 按钮的自定义标签文本。

已弃用:4.10 

gtk_file_chooser_native_set_cancel_label

设置 cancel 按钮的自定义标签文本。

已弃用:4.10 

GtkNativeDialog 继承的方法(10)
gtk_native_dialog_destroy

销毁一个对话框。

gtk_native_dialog_get_modal

返回对话框是否为模态。

gtk_native_dialog_get_title

获取 GtkNativeDialog 的标题。

gtk_native_dialog_get_transient_for

获取此窗口的瞬态父目录。

gtk_native_dialog_get_visible

确定对话框是否可见。

gtk_native_dialog_hide

如果对话框可见,则隐藏对话框,中止任何交互。

gtk_native_dialog_set_modal

设置对话框为模态或非模态。

gtk_native_dialog_set_title

设置 GtkNativeDialog. 的标题。

gtk_native_dialog_set_transient_for

对话窗口应为它们派生的主应用程序窗口设置瞬态。

gtk_native_dialog_show

在显示器上显示对话框。

GObject 继承的方法(43)

请参阅GObject以获取方法的完整列表。

GtkFileChooser 继承的方法(25)

请参阅GtkFileChooser以获取方法的完整列表。

属性

Gtk.FileChooserNative:accept-label

对话框中 accept 按钮上的标签文本,或 `NULL` 来使用默认文本。

Gtk.FileChooserNative:cancel-label

对话框中 cancel 按钮上的标签文本,或 `NULL` 来使用默认文本。

GtkNativeDialog 继承的属性(4)
Gtk.NativeDialog:modal

窗口是否应相对于其瞬态父目录为模态。

Gtk.NativeDialog:title

对话框窗口的标题。

Gtk.NativeDialog:transient-for

对话框的瞬态父目录,或 `NULL` 表示没有。

Gtk.NativeDialog:visible

窗口当前是否可见。

GtkFileChooser 继承的属性(6)
GtkFileChooser:action

文件选择器正在执行的操作类型。

已弃用:4.10 

GtkFileChooser:create-folders

不在 `GTK_FILE_CHOOSER_ACTION_OPEN` 模式中的文件选择器是否会向用户提供创建新文件夹的选项。

已弃用:4.10 

GtkFileChooser:filter

用于选择所显示文件的当前筛选器。

已弃用:4.10 

GtkFileChooser:filters

包含已通过 gtk_file_chooser_add_filter() 添加筛选器的 `GListModel`。

已弃用:4.10 

GtkFileChooser:select-multiple

是否允许选择多个文件。

已弃用:4.10 

GtkFileChooser:shortcut-folders

包含通过 gtk_file_chooser_add_shortcut_folder() 添加的快捷文件夹的 GListModel

已弃用:4.10 

信号

GtkNativeDialog(1)继承的信号
GtkNativeDialog::response

当用户响应此对话框时发出。

GObject(1)继承的信号
GObject::notify

当对象的一个属性通过 g_object_set_property()、g_object_set() 等设置其值时,该对象会发出 notify 信号。

类结构

struct GtkFileChooserNativeClass {
  GtkNativeDialogClass parent_class;
  
}

无可用说明。

类成员
parent_class: GtkNativeDialogClass

无可用说明。