GtkComboBox

已弃用:4.10 

说明 [源代码]

class Gtk.ComboBox : Gtk.Widget
  implements Gtk.Accessible, Gtk.Buildable, Gtk.CellEditable, Gtk.CellLayout, Gtk.ConstraintTarget {
  /* No available fields */
}

GtkComboBox 是一款允许用户从有效选项列表中进行选择的小工具。

An example GtkComboBox

GtkComboBox 会显示选定的选项;激活时,GtkComboBox 会显示一个允许用户进行新选择的弹出窗口。

GtkComboBox 使用模型-视图模式;有效选项列表以树模型的形式指定,并且可以通过使用单元格渲染器来调整选项的显示,以便适应模型中的数据,就像在树视图中所做的那样。这是可能的,因为 GtkComboBox 实现了 GtkCellLayout 接口。包含有效选项的树模型并不仅限于一个平面列表,它可以是一个真正的树,并且弹出窗口将反映树状结构。

为了允许用户输入模型中没有的值,GtkComboBox:has-entry 属性允许 GtkComboBox 包含 GtkEntry。可以通过在组合框上调用 gtk_combo_box_get_child() 来访问此条目。

对于文本选择的一个简单列表,GtkComboBox的模型-视图API可能会有些繁琐。在这种情况下,GtkComboBoxText提供了简单的替代方案。GtkComboBoxGtkComboBoxText都可以包含一个条目。

CSS 节点

combobox
├── box.linked
│   ╰── button.combo
│       ╰── box
│           ├── cellview
│           ╰── arrow
╰── window.popup

标准组合框包含一个类为.linked的盒子,一个类为.combo的按钮,并且在这些按钮中,有一个单元格视图和一个箭头。

combobox
├── box.linked
│   ├── entry.combo
│   ╰── button.combo
│       ╰── box
│           ╰── arrow
╰── window.popup

带有条目的GtkComboBox有一个名称为combobox的单个CSS节点。它包含一个类为.linked的盒子。该盒子包含一个条目和一个按钮,均添加了类.combo。按钮还包含另一个节点,名称为箭头。

辅助功能

GtkComboBox使用GTK_ACCESSIBLE_ROLE_COMBO_BOX角色。

已弃用:4.10

改为使用GtkDropDown

层次结构

hierarchy this GtkComboBox implements_0 GtkAccessible this--implements_0 implements_1 GtkBuildable this--implements_1 implements_2 GtkCellEditable this--implements_2 implements_3 GtkCellLayout this--implements_3 implements_4 GtkConstraintTarget this--implements_4 ancestor_0 GtkWidget ancestor_0--this ancestor_1 GInitiallyUnowned ancestor_1--ancestor_0 ancestor_2 GObject ancestor_2--ancestor_1

构造函数

gtk_combo_box_new

创建一个新的空GtkComboBox

已弃用:4.10 

gtk_combo_box_new_with_entry

创建一个带有条目的新空GtkComboBox

已弃用:4.10 

gtk_combo_box_new_with_model

创建一个带有模型的新GtkComboBox

已弃用:4.10 

gtk_combo_box_new_with_model_and_entry

创建一个带有条目和模型的新空GtkComboBox

已弃用:4.10 

实例方法

gtk_combo_box_get_active

返回当前处于活动状态的项目的索引。

已弃用:4.10 

gtk_combo_box_get_active_id

返回combo_box的活动行的ID

已弃用:4.10 

gtk_combo_box_get_active_iter

设置iter指向当前处于活动状态的项目。

已弃用:4.10 

gtk_combo_box_get_button_sensitivity

返回组合框在模型中没有项目时设置下拉按钮为敏感还是不敏感。

已弃用:4.10 

gtk_combo_box_get_child

获取combo_box的子小部件。

已弃用:4.10 

gtk_combo_box_get_entry_text_column

返回combo_box用于从内部条目中获取字符串以显示的列。

已弃用:4.10 

gtk_combo_box_get_has_entry

返回组合框是否有条目。

已弃用:4.10 

gtk_combo_box_get_id_column

返回combo_box用于获取值的字符串ID的列。

已弃用:4.10 

gtk_combo_box_get_model

返回combo_boxGtkTreeModel

已弃用:4.10 

gtk_combo_box_get_popup_fixed_width

获取弹出窗口是否使用固定宽度。

已弃用:4.10 

gtk_combo_box_get_row_separator_func

返回当前行分隔符函数。

已弃用:4.10 

gtk_combo_box_popdown

隐藏combo_box的菜单或下拉列表。

已弃用:4.10 

gtk_combo_box_popup

弹出combo_box的菜单或下拉列表。

已弃用:4.10 

gtk_combo_box_popup_for_device

弹出combo_box的菜单。

已弃用:4.10 

gtk_combo_box_set_active

combo_box的活动项目设置为索引index处的项目。

已弃用:4.10 

gtk_combo_box_set_active_id

combo_box的活动行更改为具有等于active_idID的行。

已弃用:4.10 

gtk_combo_box_set_active_iter

将当前激活项设置为由 iter 引用的项。

已弃用:4.10 

gtk_combo_box_set_button_sensitivity

设置组合框的下拉按钮是否应根据模型内容更新其灵敏度。

已弃用:4.10 

gtk_combo_box_set_child

设置 combo_box 的子小组件。

已弃用:4.10 

gtk_combo_box_set_entry_text_column

设置 combo_box 应从用于获取字符串的模型列,以使其成为 text_column

已弃用:4.10 

gtk_combo_box_set_id_column

设置 combo_box 应从用于为值获取字符串 ID 的模型列。

已弃用:4.10 

gtk_combo_box_set_model

combo_box 用于的模型设置为 model

已弃用:4.10 

gtk_combo_box_set_popup_fixed_width

指定弹出窗口的宽度是否应为固定宽度。

已弃用:4.10 

gtk_combo_box_set_row_separator_func

设置行分隔符函数,该函数用于确定是否将行绘制为分隔符。

已弃用:4.10 

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

GtkCellEditable (3) 继承的方法
gtk_cell_editable_editing_done

发出 GtkCellEditable::editing-done 信号。

已弃用:4.10 

gtk_cell_editable_remove_widget

发出 GtkCellEditable::remove-widget 信号。

已弃用:4.10 

gtk_cell_editable_start_editing

开始编辑 cell_editable

GtkCellLayout (10) 继承的方法
gtk_cell_layout_add_attribute

将属性映射添加到 cell_layout 中的列表。

已弃用:4.10 

gtk_cell_layout_clear

取消 cell_layout 上所有渲染器上的所有映射,并从 cell_layout 中删除所有渲染器。

已弃用:4.10 

gtk_cell_layout_clear_attributes

清除先前使用 gtk_cell_layout_set_attributes() 设置的所有现有属性。

已弃用:4.10 

gtk_cell_layout_get_area

返回基础 GtkCellArea,该 GtkCellArea 如果在 GtkCellArea 上调用可能是 cell_layout,或者如果 cell_layout 不使用 GtkCellArea,则可能是 NULL

已弃用:4.10 

gtk_cell_layout_get_cells

返回已添加到 cell_layout 的单元格渲染器。

已弃用:4.10 

gtk_cell_layout_pack_end

cell 添加到 cell_layout 的末尾。如果 expandFALSE,则 cell 分配的空间不超过其需要。任何未使用空间将平均分配给 expandTRUE 的单元格。

已弃用:4.10 

gtk_cell_layout_pack_start

cell 打包到 cell_layout 的开头。如果 expandFALSE,则 cell 分配的空间不超过其需要。任何未使用空间将平均分配给 expandTRUE 的单元格。

已弃用:4.10 

gtk_cell_layout_reorder

cell 重新插入 position

已弃用:4.10 

gtk_cell_layout_set_attributes

将参数列表中的属性设置为 cell_layout 的属性。

已弃用:4.10 

gtk_cell_layout_set_cell_data_func

设置要用于 cell_layoutGtkCellLayoutDataFunc。

已弃用:4.10 

属性

Gtk.ComboBox:active

当前 ACTIVE 的项目。

Gtk.ComboBox:active-id

ID 列的值为 ACTIVE 行。

Gtk.ComboBox:button-sensitivity

当模型为空时下拉按钮是否敏感。

Gtk.ComboBox:child

子小组件。

Gtk.ComboBox:entry-text-column

与输入字符串关联的控件列。

Gtk.ComboBox:has-entry

组合框是否具有一个输入。

Gtk.ComboBox:has-frame

has-frame 属性控制是否在输入周围绘制一个框架。

Gtk.ComboBox:id-column

为模型中的值提供字符串 ID 的模型列,如果 != -1。

Gtk.ComboBox:model

组合框从中获取其值的控件。

Gtk.ComboBox:popup-fixed-width

弹出窗口的宽度是否应为固定宽度,与分配给组合框的宽度相匹配。

Gtk.ComboBox:popup-shown

组合框的弹出菜单是否弹出。

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 实现的可访问角色。

GtkCellEditable(1)继承的属性
GtkCellEditable:editing-canceled

指示是否取消对单元格的编辑。

信号

Gtk.ComboBox::activate

在组合框被激活时发出。

since: 4.6

Gtk.ComboBox::changed

在活动项发生变化时发出。

Gtk.ComboBox::format-entry-text

发出,以便更改组合框输入框中的文本的显示方式。

Gtk.ComboBox::move-active

发出,以便移动活动选择。

Gtk.ComboBox::popdown

发出,以便弹出组合框列表。

Gtk.ComboBox::popup

发出,以便弹出组合框列表。

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

widgetGdkSurface 关联时发出。

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 信号。

GtkCellEditable(2)继承的信号
GtkCellEditable::editing-done

该信号是指示单元格渲染器从 cell_editable 更新其值的标志。

GtkCellEditable::remove-widget

该信号表示单元格完成编辑,cell_editable 小部件正在被移除,随后可能会被销毁。

类结构

struct GtkComboBoxClass {
  GtkWidgetClass parent_class;
  void (* changed) (
    GtkComboBox* combo_box
  );
  char* (* format_entry_text) (
    GtkComboBox* combo_box,
    const char* path
  );
  void (* activate) (
    GtkComboBox* combo_box
  );
  
}

没有可用的描述。

类成员
parent_class: GtkWidgetClass

父类。

changed: void (* changed) ( GtkComboBox* combo_box )

在活动项发生变化时发出信号。

format_entry_text: char* (* format_entry_text) ( GtkComboBox* combo_box, const char* path )

允许您更改下拉框中的文本如何显示的信号。

activate: void (* activate) ( GtkComboBox* combo_box )

没有可用的描述。

虚拟方法

Gtk.ComboBoxClass.activate
没有可用的描述。

Gtk.ComboBoxClass.changed

在活动项发生变化时发出信号。

Gtk.ComboBoxClass.format_entry_text

允许您更改下拉框中的文本如何显示的信号。