类
GtkDialog
已弃用:4.10
说明 [src]
class Gtk.Dialog : Gtk.Window
implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.Root, Gtk.ShortcutManager {
/* No available fields */
}
对话框是一种以少量方式提示用户输入数据的便利方式。
典型用途包括显示消息、提问或任何其他不需要用户投入大量精力的事情。
GtkDialog
的主区域称为“内容区域”,你可以用诸如 GtkLabel
或 GtkEntry
之类的窗口小组件来填充该区域,以便将你的信息、问题或任务展示给用户。
此外,对话框允许你添加“操作窗口小组件”。通常,操作窗口小组件是按钮。根据平台的不同,操作窗口小组件可能显示在窗口顶部的标题栏中,也可能显示在窗口的底部。要添加操作窗口小组件,请使用 gtk_dialog_new_with_buttons()
创建 GtkDialog
,或使用 gtk_dialog_add_button()
、gtk_dialog_add_buttons()
或 gtk_dialog_add_action_widget()
。
GtkDialogs
使用一些启发式方法来决定是否在窗口装饰中添加一个关闭按钮。如果任何操作按钮使用响应 ID GTK_RESPONSE_CLOSE
或 GTK_RESPONSE_CANCEL
,则省略关闭按钮。
点击作为操作窗口小组件添加的按钮时,将使用你指定的响应 ID 发送 GtkDialog::response
信号。 GTK 永远不会为正响应 ID 分配一个含义;这些都是用户完全自己定义的。但为了方便起见,你可以在 GtkResponseType
枚举中使用响应 ID(这些全部为小于零的值)。如果一个对话框收到一个删除事件,则 GtkDialog::response
信号将连同 GTK_RESPONSE_DELETE_EVENT
响应 ID 发送。
使用对 gtk_dialog_new()
或 gtk_dialog_new_with_buttons()
的调用来创建对话框。建议使用后者;它允许你设置对话框标题、一些方便的标志,并添加按钮。
可以通过在对话框上调用 gtk_window_set_modal()
来创建“模态”对话框(即,冻结用户输入的其余应用程序)。使用 gtk_dialog_new_with_buttons()
时,你还可以传递 GTK_DIALOG_MODAL
标志来使对话框成为模态对话框。
对于以下示例中的简单对话框,GtkMessageDialog
会省去一些工作。但是,如果你的对话框中的内容不仅仅是一个简单的消息的话,那么你需要手动创建对话框内容。
GtkDialog 的简单用法示例
// Function to open a dialog box with a message
void
quick_message (GtkWindow *parent, char *message)
{
GtkWidget *dialog, *label, *content_area;
GtkDialogFlags flags;
// Create the widgets
flags = GTK_DIALOG_DESTROY_WITH_PARENT;
dialog = gtk_dialog_new_with_buttons ("Message",
parent,
flags,
_("_OK"),
GTK_RESPONSE_NONE,
NULL);
content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
label = gtk_label_new (message);
// Ensure that the dialog box is destroyed when the user responds
g_signal_connect_swapped (dialog,
"response",
G_CALLBACK (gtk_window_destroy),
dialog);
// Add the label, and show everything we’ve added
gtk_box_append (GTK_BOX (content_area), label);
gtk_widget_show (dialog);
}
GtkDialog as GtkBuildable
GtkDialog
的 GtkBuildable
接口实现将 content_area
作为一个内部子项公开,其名称为“content_area”。
GtkDialog
支持自定义 <action-widgets>
元素,其中可包含多个 <action-widget>
元素。该 “response” 属性指定一个数字响应,且该元素的内容是该小组件的 ID(应为该对话框 action_area
的一个子项)。要将一个响应标记为默认响应,请将该 <action-widget>
元素的 “default” 属性设置为 true。
GtkDialog
支持通过指定 <child>
元素的 “type” 属性为 “action”,添加操作小组件。小组件将被添加到对话框的动作区域或标题栏中,具体取决于 “use-header-bar” 属性。要使用 <action-widgets>
元素将响应 ID 与操作小组件关联起来。
GtkDialog
的一个 UI 定义 片段示例
<object class="GtkDialog" id="dialog1">
<child type="action">
<object class="GtkButton" id="button_cancel"/>
</child>
<child type="action">
<object class="GtkButton" id="button_ok">
</object>
</child>
<action-widgets>
<action-widget response="cancel">button_cancel</action-widget>
<action-widget response="ok" default="true">button_ok</action-widget>
</action-widgets>
</object>
辅助功能
GtkDialog
使用 GTK_ACCESSIBLE_ROLE_DIALOG
角色。
已弃用:4.10
改用 GtkWindow
。
实例方法
继承自 GtkAccessible 的方法(19)
gtk_accessible_announce
要求用户的屏幕阅读器播报给定的 消息。
自版本 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
查询此无障碍的坐标和尺寸。
自版本 4.10 起
gtk_accessible_get_first_accessible_child
检索无障碍对象的第一个无障碍子对象。
自版本 4.10 起
gtk_accessible_get_next_accessible_sibling
检索无障碍对象的下一个无障碍兄弟对象。
自版本 4.10 起
gtk_accessible_get_platform_state
查询平台状态,例如焦点。
自版本 4.10 起
gtk_accessible_reset_property
将无障碍属性重置为其默认值。
gtk_accessible_reset_relation
将无障碍关系重置为其默认值。
gtk_accessible_reset_state
将无障碍状态重置为其默认值。
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) 继承的方法
从 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
不是当前获得焦点的控件,且可获得焦点,则将其设置为根的焦点控件。
属性
从 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
为 true 时,窗口是模态的。
Gtk.Window:resizable
为 true 时,用户可以调整窗口大小。
Gtk.Window:startup-id
用于设置窗口启动通知标识符的只写属性。
Gtk.Window:suspended
表示窗口是否暂停。
自:4.12
Gtk.Window:title
窗口的标题。
Gtk.Window:titlebar
标题栏小部件。
自: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)
信号
从 GtkWindow 继承的信号(5)
GtkWindow::activate-default
在用户激活默认小部件时发出。
GtkWindow::activate-focus
当用户激活窗口
的当前焦点小组件时发出。
GtkWindow::close-request
当用户单击窗口的关闭按钮时发出。
GtkWindow::enable-debugging
当用户启用或禁用交互式调试时发出。
GtkWindow::keys-changed
与窗口相关的加速键或提示符集发生更改时发出。
已弃用:4.10
从 GtkWidget (13) 继承的信号
GtkWidget::destroy
信号表示所有小组件引用持有者应该释放他们持有的引用。
GtkWidget::direction-changed
当小组件的文本方向发生更改时发出。
GtkWidget::hide
当小组件
隐藏时发出。
GtkWidget::keynav-failed
如果键盘导航失败,则发出。
GtkWidget::map
当小组件
将要映射时发出。
GtkWidget::mnemonic-activate
当通过提示符激活小组件时发出。
GtkWidget::move-focus
当焦点移动时发出。
GtkWidget::query-tooltip
当小组件的工具提示即将显示时发出。
GtkWidget::realize
当 小组件
与 GdkSurface
关联时发出。
GtkWidget::show
当小组件
显示时发出。
GtkWidget::state-flags-changed
当小组件状态发生更改时发出。
GtkWidget::unmap
当小组件
将要取消映射时发出。
GtkWidget::unrealize
当与 小组件
关联的 GdkSurface
被销毁时发出。
从 GObject (1) 继承的信号
GObject::notify
当对象其中一个属性通过 g_object_set_property()、g_object_set() 等设置其值时,就会在该对象上发出 notify 信号。
类结构
struct GtkDialogClass {
GtkWindowClass parent_class;
void (* response) (
GtkDialog* dialog,
int response_id
);
void (* close) (
GtkDialog* dialog
);
}
无可用说明。
类成员
父类:GtkWindowClass
父类。
响应:void (* 响应) (GtkDialog* 对话框,int 响应 ID)
当触发操作小组件时发出的信号。
关闭:void (* 关闭) (GtkDialog* 对话框)
当用户使用键盘绑定关闭对话框时发出的信号。