类
GtkFileChooserDialog
已弃用:4.10
说明 [源代码]
final class Gtk.FileChooserDialog : Gtk.Dialog
implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.FileChooser, Gtk.Native, Gtk.Root, Gtk.ShortcutManager {
/* No available fields */
}
GtkFileChooserDialog
是一个适合与“文件打开”或“文件保存”命令配合使用的对话框。
此小工具通过将 GtkFileChooserWidget
放在 GtkDialog
中进行工作。它公开 GtkFileChooser
接口,因此您可以在文件选择器对话框以及 GtkDialog
的文件选择器函数上使用所有 GtkFileChooser
函数。
请注意,GtkFileChooserDialog
没有任何自己的方法。相反,您应该使用对 GtkFileChooser
起作用的函数。
如果您希望与平台很好地集成,则应使用 GtkFileChooserNative
API,它将在可用时使用特定于平台的对话框,否则回退到 GtkFileChooserDialog
。
典型用法
在最简单的情况下,可以使用以下代码来使用 GtkFileChooserDialog
选择要打开的文件
static void
on_open_response (GtkDialog *dialog,
int response)
{
if (response == GTK_RESPONSE_ACCEPT)
{
GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog);
g_autoptr(GFile) file = gtk_file_chooser_get_file (chooser);
open_file (file);
}
gtk_window_destroy (GTK_WINDOW (dialog));
}
// ...
GtkWidget *dialog;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
dialog = gtk_file_chooser_dialog_new ("Open File",
parent_window,
action,
_("_Cancel"),
GTK_RESPONSE_CANCEL,
_("_Open"),
GTK_RESPONSE_ACCEPT,
NULL);
gtk_window_present (GTK_WINDOW (dialog));
g_signal_connect (dialog, "response",
G_CALLBACK (on_open_response),
NULL);
要将对话框用于保存,可以使用
static void
on_save_response (GtkDialog *dialog,
int response)
{
if (response == GTK_RESPONSE_ACCEPT)
{
GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog);
g_autoptr(GFile) file = gtk_file_chooser_get_file (chooser);
save_to_file (file);
}
gtk_window_destroy (GTK_WINDOW (dialog));
}
// ...
GtkWidget *dialog;
GtkFileChooser *chooser;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE;
dialog = gtk_file_chooser_dialog_new ("Save File",
parent_window,
action,
_("_Cancel"),
GTK_RESPONSE_CANCEL,
_("_Save"),
GTK_RESPONSE_ACCEPT,
NULL);
chooser = GTK_FILE_CHOOSER (dialog);
if (user_edited_a_new_document)
gtk_file_chooser_set_current_name (chooser, _("Untitled document"));
else
gtk_file_chooser_set_file (chooser, existing_filename);
gtk_window_present (GTK_WINDOW (dialog));
g_signal_connect (dialog, "response",
G_CALLBACK (on_save_response),
NULL);
设置文件选择器对话框
在各种情况下,您可能需要使用 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_file()
设置现有文件。 -
要选择文件夹而不是文件,请使用
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER
。
一般而言,只有在适合使用 gtk_file_chooser_set_file()
才能让文件选择器显示特定文件夹,即当您执行“另存为”命令并且已经将文件保存在某处时。
响应码
GtkFileChooserDialog
从 GtkDialog
继承,因此其操作区域中的按钮具有诸如 GTK_RESPONSE_ACCEPT
和 GTK_RESPONSE_CANCEL
的响应码。例如,您可以按如下方式调用 gtk_file_chooser_dialog_new()
GtkWidget *dialog;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
dialog = gtk_file_chooser_dialog_new ("Open File",
parent_window,
action,
_("_Cancel"),
GTK_RESPONSE_CANCEL,
_("_Open"),
GTK_RESPONSE_ACCEPT,
NULL);
这将为“取消”和“打开”创建按钮,它们使用 GtkResponseType
中预定义的响应标识符。对于大多数对话框,您可以使用您自己的自定义响应码,而不是 GtkResponseType
中的响应码,但 GtkFileChooserDialog
假设其“接受”类型的操作(例如“打开”或“保存”按钮)具有以下响应码之一
GTK_RESPONSE_ACCEPT
GTK_RESPONSE_OK
GTK_RESPONSE_YES
GTK_RESPONSE_APPLY
这是因为 GtkFileChooserDialog
必须拦截响应并在适当的时候切换到文件夹,而不是让对话框终止 - 实现使用这些已知响应码来知道在适当的时候可以阻止哪些响应
总结是,当您使用 GtkFileChooserDialog
来确保适当操作时,请务必使用预定义的响应码。
CSS 节点
GtkFileChooserDialog
具有一个名为 window
且样式类为 .filechooser
的 CSS 节点。
已弃用:4.10
改为使用 GtkFileDialog
。
实例方法
从 GtkDialog 继承的方法 (10)
gtk_dialog_add_action_widget
向 GtkDialog
的操作区域添加可激活小部件。
已弃用:4.10
gtk_dialog_add_button
添加带有给定 text 的按钮。
已弃用:4.10
gtk_dialog_add_buttons
添加多个按钮。
已弃用:4.10
gtk_dialog_get_content_area
返回 dialog
的内容区域。
已弃用:4.10
gtk_dialog_get_header_bar
返回 dialog
的标题栏。
已弃用:4.10
gtk_dialog_get_response_for_widget
获取 dialog 操作区域中某个小部件的响应 ID。
已弃用:4.10
gtk_dialog_get_widget_for_response
获取在 dialog 操作区域中使用特定响应 ID 的小部件。
已弃用:4.10
gtk_dialog_response
使用给定的响应 ID 发出 ::response 信号。
已弃用:4.10
gtk_dialog_set_default_response
根据响应 ID 设置用于该对话框的默认小部件。
已弃用:4.10
gtk_dialog_set_response_sensitive
使能/禁用对话框按钮的便捷方法。
已弃用:4.10
从 GtkAccessible 继承的方法 (19)
gtk_accessible_announce
请求用户的屏幕阅读器发布给定的 message。
自:4.14
gtk_accessible_get_accessible_parent
获取可访问对象的可访问父对象。
自:4.10
gtk_accessible_get_accessible_role
获取可访问对象的可访问角色。
gtk_accessible_get_at_context
获取给定可访问对象的实现。
自:4.10
gtk_accessible_get_bounds
查询 this 可访问区域的坐标和尺寸。
自:4.10
gtk_accessible_get_first_accessible_child
获取可访问对象的第一个可访问子对象。
自:4.10
gtk_accessible_get_next_accessible_sibling
获取可访问对象的下一个可访问同级对象。
自:4.10
gtk_accessible_get_platform_state
查询平台状态,例如 focus。
自:4.10
gtk_accessible_reset_property
将可访问属性重置为其默认 value。
gtk_accessible_reset_relation
将可访问关系重置为其默认 value。
gtk_accessible_reset_state
将可访问状态重置为其默认 value。
gtk_accessible_set_accessible_parent
设置动态对象的上级对象和同级对象。
自:4.10
gtk_accessible_update_next_accessible_sibling
更新下一个动态同级对象。
自:4.10
gtk_accessible_update_property
更新动态属性列表。
gtk_accessible_update_property_value
更新动态属性数组。
gtk_accessible_update_relation
更新动态关系列表。
gtk_accessible_update_relation_value
更新动态关系数组。
gtk_accessible_update_state
更新动态状态列表。
gtk_accessible_update_state_value
更新动态状态数组。
从 GtkBuildable (1) 继承的方法
从 GtkFileChooser (25) 继承的方法
请参阅 GtkFileChooser 以获取完整的方法列表。
从 GtkNative (5) 继承的方法
gtk_native_get_renderer
返回此 GtkNative
使用的渲染器。
gtk_native_get_surface
返回此 GtkNative
的表面。
gtk_native_get_surface_transform
检索 self
的表面变换。
gtk_native_realize
实现 GtkNative
。
gtk_native_unrealize
取消实现 GtkNative
。
从 GtkRoot (3) 继承的方法
gtk_root_get_display
返回此 GtkRoot
所在的显示器。
gtk_root_get_focus
检索根元素中当前获得焦点的微件。
gtk_root_set_focus
如果 focus
不是当前的焦点微件,并且是可获得焦点的,则将其设置为根元素的焦点微件。
属性
从 GtkDialog (1) 继承的属性
从 GtkWindow (25) 继承的属性
Gtk.Window:application
与窗口关联的 GtkApplication
。
Gtk.Window:child
子窗口。
Gtk.Window:decorated
是否窗口应该有边框(也称为“装饰”)。
Gtk.Window:default-height
窗口的默认高度。
Gtk.Window:default-widget
默认窗口。
Gtk.Window:default-width
窗口的默认宽度。
Gtk.Window:deletable
窗口框架是否应该有关闭按钮。
Gtk.Window:destroy-with-parent
如果父元素被销毁,是否应该销毁此窗口。
Gtk.Window:display
将显示此窗口的显示器。
Gtk.Window:focus-visible
是否‘焦点矩形’当前在该窗口中可见。
Gtk.Window:focus-widget
焦点窗口。
Gtk.Window:fullscreened
窗口是否全屏。
Gtk.Window:handle-menubar-accel
窗口框架是否应该处理 F10 来激活菜单栏。
since: 4.2
Gtk.Window:hide-on-close
如果用户单击关闭按钮,是否应该隐藏此窗口。
Gtk.Window:icon-name
指定用作窗口图标的主题图标的名称。
Gtk.Window:is-active
顶级窗口是否为当前处于活动状态的窗口。
Gtk.Window:maximized
窗口是否已最大化。
Gtk.Window:mnemonics-visible
是否当前在该窗口中可见助记符。
Gtk.Window:modal
如果为真,则窗口是模态的。
Gtk.Window:resizable
如果为真,则用户可以调整窗口大小。
Gtk.Window:startup-id
设置窗口启动通知 标识符的只写属性。
Gtk.Window:suspended
窗口是否 已挂起。
since: 4.12
Gtk.Window:title
窗口的标题。
Gtk.Window:titlebar
标题栏 小组件。
since: 4.6
Gtk.Window:transient-for
窗口的瞬态父 级。
从 GtkWidget 继承的属性 (34)
Gtk.Widget:can-focus
小组件或其任何后代是否可以接受输入 焦点。
Gtk.Widget:can-target
小组件是否可以接收指针 事件。
Gtk.Widget:css-classes
已应用于此 小组件的 CSS 类别列表。
Gtk.Widget:css-name
CSS 树中此小组件的名称。
Gtk.Widget:cursor
widget
使用的光 标。
Gtk.Widget:focus-on-click
是否在用 鼠标单击时抓取小组件的焦点。
Gtk.Widget:focusable
此小组件本身是否接受输入 焦点。
Gtk.Widget:halign
如果小组件获得额外的 空间,则如何分配水平空间。
Gtk.Widget:has-default
小组件是否是默认 小组件。
Gtk.Widget:has-focus
小组件是否有输入 焦点。
Gtk.Widget:has-tooltip
在 widget
上启用或禁用 GtkWidget::query-tooltip
信号的 发出。
Gtk.Widget:height-request
重写 小组件的高度请求。
Gtk.Widget:hexpand
是否 水平展开。
Gtk.Widget:hexpand-set
是否使用 hexpand
属性。
Gtk.Widget:layout-manager
用于计算小组件的首选大小并分配其 子级内容的 GtkLayoutManager
实例。
Gtk.Widget:margin-bottom
小组件底侧的边距。
Gtk.Widget:margin-end
小组件末尾的边距, 水平。
Gtk.Widget:margin-start
小组件开始处的边距, 水平。
Gtk.Widget:margin-top
小组件顶侧的边距。
Gtk.Widget:name
小组件的名称。
Gtk.Widget:opacity
小组件的请求不透明度。
Gtk.Widget:overflow
如何处理小组件内容区域外部的内容 。
Gtk.Widget:parent
此 小组件的父小组件。
Gtk.Widget:receives-default
是否在小组件 获得焦点时接收默认操作。
Gtk.Widget:root
包含此 小组件的小组件树的 GtkRoot
小组件。
Gtk.Widget:scale-factor
小组件的缩放因子。
Gtk.Widget:sensitive
小组件是否响应 输入。
Gtk.Widget:tooltip-markup
设置工具提示的文本为使用 Pango 标记标记的给定字符串。
Gtk.Widget:tooltip-text
将工具提示的文本设置为给定的 字符串。
Gtk.Widget:valign
如果小组件获得额外的 空间,则如何分配垂直空间。
Gtk.Widget:vexpand
是否 垂直展开。
Gtk.Widget:vexpand-set
是否使用 vexpand
属性。
Gtk.Widget:visible
小组件是否 可见。
Gtk.Widget:width-request
重写 小组件的宽度请求。
从 GtkAccessible 继承的属性 (1)
从 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
信号
从 GtkDialog 继承的信号 (2)
从 GtkWindow 继承的信号 (5)
GtkWindow::activate-default
当用户激活默认部件时发出。
GtkWindow::activate-focus
当用户激活 window
的当前聚焦部件时发出。
GtkWindow::close-request
当用户单击窗口的关闭按钮时发出。
GtkWindow::enable-debugging
当用户启用或禁用交互式调试时发出。
GtkWindow::keys-changed
当与窗口关联的加速器或助记符集发生改变时发出。
已弃用:4.10
从 GtkWidget 继承的信号 (13)
GtkWidget::destroy
所有保存对部件的引用的持有者都应释放所持有的引用的信号。
GtkWidget::direction-changed
当部件的文字方向发生改变时发出。
GtkWidget::hide
当 widget
被隐藏时发出。
GtkWidget::keynav-failed
如果键盘导航失败,则发出。
GtkWidget::map
当 widget
将被映射时发出。
GtkWidget::mnemonic-activate
当通过助记符激活部件时发出。
GtkWidget::move-focus
当焦点被移动时发出。
GtkWidget::query-tooltip
当部件的工具提示即将显示时发出。
GtkWidget::realize
当 widget
与 GdkSurface
关联时发出。
GtkWidget::show
当 widget
显示时发出。
GtkWidget::state-flags-changed
当部件状态发生改变时发出。
GtkWidget::unmap
当 widget
将被取消映射时发出。
GtkWidget::unrealize
当与 widget
关联的 GdkSurface
被销毁时发出。
从 GObject 继承的信号 (1)
GObject::notify
当对象的一个属性通过 g_object_set_property()、g_object_set()、或其它方法设置其值时,notify 信号就针对该对象发出。