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 */
}

对话框是一种以少量方式提示用户输入数据的便利方式。

An example GtkDialog

典型用途包括显示消息、提问或任何其他不需要用户投入大量精力的事情。

GtkDialog 的主区域称为“内容区域”,你可以用诸如 GtkLabelGtkEntry 之类的窗口小组件来填充该区域,以便将你的信息、问题或任务展示给用户。

此外,对话框允许你添加“操作窗口小组件”。通常,操作窗口小组件是按钮。根据平台的不同,操作窗口小组件可能显示在窗口顶部的标题栏中,也可能显示在窗口的底部。要添加操作窗口小组件,请使用 gtk_dialog_new_with_buttons() 创建 GtkDialog,或使用 gtk_dialog_add_button()gtk_dialog_add_buttons()gtk_dialog_add_action_widget()

GtkDialogs 使用一些启发式方法来决定是否在窗口装饰中添加一个关闭按钮。如果任何操作按钮使用响应 ID GTK_RESPONSE_CLOSEGTK_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

GtkDialogGtkBuildable 接口实现将 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

层次结构

hierarchy this GtkDialog implements_0 GtkAccessible this--implements_0 implements_1 GtkBuildable this--implements_1 implements_2 GtkConstraintTarget this--implements_2 implements_3 GtkNative this--implements_3 implements_4 GtkRoot this--implements_4 implements_5 GtkShortcutManager this--implements_5 ancestor_0 GtkWindow ancestor_0--this ancestor_1 GtkWidget ancestor_1--ancestor_0 ancestor_2 GInitiallyUnowned ancestor_2--ancestor_1 ancestor_3 GObject ancestor_3--ancestor_2

构造函数

gtk_dialog_new

新建一个 dialog 框。

已弃用:4.10 

gtk_dialog_new_with_buttons

使用给定的标题和瞬态父项创建一个新的 GtkDialog

已弃用:4.10 

实例方法

gtk_dialog_add_action_widget

将一个可激活的小组件添加到 GtkDialog 的操作区域中。

已弃用:4.10 

gtk_dialog_add_button

添加一个具有给定 文本的按钮。

已弃用: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

获取一个 对话框操作区域中的小组件的响应 ID。

已弃用:4.10 

gtk_dialog_get_widget_for_response

获取在某个 对话框的操作区域中使用给定响应 ID 的小组件按钮。

已弃用:4.10 

gtk_dialog_response

发出带有给定响应 ID 的 ::response 信号。

已弃用:4.10 

gtk_dialog_set_default_response

根据响应 ID 设置对话框的默认小组件。

已弃用:4.10 

gtk_dialog_set_response_sensitive

一种 sensitize/desensitize 对话框 按钮的便捷方式。

已弃用:4.10 

继承自 GtkWindow 的方法(55)

有关方法的完整列表,请参阅 GtkWindow 。

继承自 GtkWidget 的方法(162)

有关方法的完整列表,请参阅 GtkWidget 。

继承自 GObject 的方法(43)

有关方法的完整列表,请参阅 GObject 。

继承自 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) 继承的方法
gtk_buildable_get_buildable_id

获取 buildable 对象的 ID

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 不是当前获得焦点的控件,且可获得焦点,则将其设置为根的焦点控件。

属性

Gtk.Dialog:use-header-bar

如果对话框使用 headerbar 来代替操作区域来操作按钮,则为 TRUE

已弃用:4.10 

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)
GtkAccessible:accessible-role

给定 GtkAccessible 实现的可访问角色。

信号

Gtk.Dialog::close

在用户使用键盘绑定关闭对话框时发出。

已弃用:4.10 

Gtk.Dialog::response

在单击操作小部件时发出。

已弃用:4.10 

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* 对话框)

当用户使用键盘绑定关闭对话框时发出的信号。

虚拟方法

Gtk.DialogClass.close

当用户使用键盘绑定关闭对话框时发出的信号。

Gtk.DialogClass.response

发出带有给定响应 ID 的 ::response 信号。

已弃用:4.10