GtkCellRenderer

废弃:4.10 

说明 [src]

abstract class Gtk.CellRenderer : GObject.InitiallyUnowned
{
  /* No available fields */
}

渲染单个单元格的对象

GtkCellRenderer 是用于向 cairo_t 渲染单元格的一组对象的基本类。这些对象主要由 GtkTreeView 小部件使用,尽管它们并未以任何特定方式绑定到它们。值得注意的是,GtkCellRenderer 不是 GtkWidget,不能被视为 GtkWidget

GtkCellRenderer 的主要用途是在 cairo_t 上绘制某些图形元素。通常,一个单元格渲染器可用于在屏幕上绘制多个单元格。在此用法中,CellRenderer 不应保留任何永久状态。相反,使用 GObject 的属性系统在使用前设置任何状态。然后,使用 gtk_cell_renderer_get_preferred_size() 来测量单元格。最后,使用 gtk_cell_renderer_snapshot() 在正确位置渲染单元格。

在编写新 GtkCellRenderer 时,需要遵守许多规则。首先也是最重要的,一套特定属性将始终生成大小相同的单元格渲染器,除非样式发生变化。GtkCellRenderer 还具有一些常规属性,希望所有子项都能遵守这些属性。

除了仅仅渲染单元格外,单元格渲染器还可以选择性地提供活动用户界面元素。单元格渲染器可以“可激活”,如 GtkCellRendererToggle,鼠标单击激活后就会切换,或者可以“可编辑”,如 GtkCellRendererText,允许用户使用实现 GtkCellEditable 接口的小部件(例如 GtkEntry)编辑文本。要使单元格渲染器可激活或可编辑,必须分别实现 GtkCellRendererClass.activate 或 GtkCellRendererClass.start_editing 虚拟函数。

GtkCellRenderer 及其子类的许多属性都有相应的“设置”属性,例如“cell-background-set”对应于“cell-background”。这些“设置”属性反映属性是否已设置。不应独立设置这些属性。

已弃用:4.10

列表视图使用小部件显示其内容。

层次结构

hierarchy this GtkCellRenderer ancestor_0 GInitiallyUnowned ancestor_0--this ancestor_1 GObject ancestor_1--ancestor_0

实例方法

gtk_cell_renderer_activate

将激活事件传递给单元格渲染器以供处理。某些单元格渲染器可能会使用事件;例如,GtkCellRendererToggle 在鼠标单击时切换。

废弃:4.10 

gtk_cell_renderer_get_aligned_area

获取 cellcell_area 内使用的对齐区域。用于查找合适的编辑和焦点矩形。

废弃:4.10 

gtk_cell_renderer_get_alignment

用 appropriate value 填充 xalignyalign

废弃:4.10 

gtk_cell_renderer_get_fixed_size

用 appropriate value 填充 widthheight

废弃:4.10 

gtk_cell_renderer_get_is_expanded

检查指定的 GtkCellRenderer 是否已展开。

废弃:4.10 

gtk_cell_renderer_get_is_expander

检查指定的 GtkCellRenderer 是否是展开器。

废弃:4.10 

gtk_cell_renderer_get_padding

用 appropriate value 填充 xpadypad

废弃:4.10 

gtk_cell_renderer_get_preferred_height

当渲染到 widget 时,检索渲染器的自然尺寸。

废弃:4.10 

gtk_cell_renderer_get_preferred_height_for_width

当使用指定的 width 渲染到 widget 时,检索单元格渲染器的最小高度和自然高度。

废弃:4.10 

gtk_cell_renderer_get_preferred_size

检索单元格的最小尺寸和自然尺寸,同时考虑小部件对高度优先宽度管理的偏好。

废弃:4.10 

gtk_cell_renderer_get_preferred_width

当渲染到 widget 时,检索渲染器的自然尺寸。

废弃:4.10 

gtk_cell_renderer_get_preferred_width_for_height

如果在指定了 heightwidget 中渲染,则检索单元格渲染器的最小宽度和自然宽度。

废弃:4.10 

gtk_cell_renderer_get_request_mode

获取单元格渲染器是偏好以 width-for-height 布局还是 height-for-width 布局。

废弃:4.10 

gtk_cell_renderer_get_sensitive

返回该单元格渲染器的灵敏度。

废弃:4.10 

gtk_cell_renderer_get_state

根据单元格渲染器和控件的灵敏度,以及给定的 GtkCellRendererState,将单元格渲染器状态转换为 GtkStateFlags

废弃:4.10 

gtk_cell_renderer_get_visible

返回该单元格渲染器的可见性。

废弃:4.10 

gtk_cell_renderer_is_activatable

检查在激活时单元格渲染器能否执行某些操作。

废弃:4.10 

gtk_cell_renderer_set_alignment

设置渲染器在其可用空间中的对齐方式。

废弃:4.10 

gtk_cell_renderer_set_fixed_size

将渲染器大小设置为显式,与设置的属性无关。

废弃:4.10 

gtk_cell_renderer_set_is_expanded

设置给定的 GtkCellRenderer 是否展开。

废弃:4.10 

gtk_cell_renderer_set_is_expander

设置给定的 GtkCellRenderer 是否是一个展开器。

废弃:4.10 

gtk_cell_renderer_set_padding

设置渲染器的填充。

废弃:4.10 

gtk_cell_renderer_set_sensitive

设置该单元格渲染器的灵敏度。

废弃:4.10 

gtk_cell_renderer_set_visible

设置该单元格渲染器的可见性。

废弃:4.10 

gtk_cell_renderer_snapshot

调用 GtkCellRenderer 的虚拟渲染函数。传递的三个矩形在 cr 中都是区域。大多数渲染器将在 cell_area 中绘制;GtkCellRenderer 的 xalign、yalign、xpad 和 ypad 字段应相对于 cell_area 应用。background_area 包括单元格周围的空白空间,还包括包含树形展开器的区域;因此,所有单元格的 background_area 矩形都会平铺以覆盖整个 window

废弃:4.10 

gtk_cell_renderer_start_editing

开始编辑该 cell 的内容,通过使用 GtkCellRendererClass.start_editing 虚函数创建新的 GtkCellEditable 控件。

废弃:4.10 

gtk_cell_renderer_stop_editing

通知单元格渲染器编辑已停止。如果 canceledTRUE,单元格渲染器将发出 GtkCellRenderer::editing-canceled 信号。

废弃:4.10 

GObject(43)继承的方法

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

属性

Gtk.CellRenderer:cell-background
没有可用的描述。

Gtk.CellRenderer:cell-background-rgba

单元格背景作为 GdkRGBA

Gtk.CellRenderer:cell-background-set
没有可用的描述。

Gtk.CellRenderer:editing
没有可用的描述。

Gtk.CellRenderer:height
没有可用的描述。

Gtk.CellRenderer:is-expanded
没有可用的描述。

Gtk.CellRenderer:is-expander
没有可用的描述。

Gtk.CellRenderer:mode
没有可用的描述。

Gtk.CellRenderer:sensitive
没有可用的描述。

Gtk.CellRenderer:visible
没有可用的描述。

Gtk.CellRenderer:width
没有可用的描述。

Gtk.CellRenderer:xalign
没有可用的描述。

Gtk.CellRenderer:xpad
没有可用的描述。

Gtk.CellRenderer:yalign
没有可用的描述。

Gtk.CellRenderer:ypad
没有可用的描述。

信号

Gtk.CellRenderer::editing-canceled

当用户取消编辑单元格的过程时,会发出此信号。例如,可以写一个可编辑的单元格渲染器,在用户按下 Escape 时取消编辑。

Gtk.CellRenderer::editing-started

当单元格开始编辑时,会发出此信号。此信号的预期用途是在 editable 上进行特殊设置,例如添加 GtkEntryCompletion 或在 GtkComboBox 中设置其他列。

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

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

类结构

struct GtkCellRendererClass {
  GtkSizeRequestMode (* get_request_mode) (
    GtkCellRenderer* cell
  );
  void (* get_preferred_width) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    int* minimum_size,
    int* natural_size
  );
  void (* get_preferred_height_for_width) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    int width,
    int* minimum_height,
    int* natural_height
  );
  void (* get_preferred_height) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    int* minimum_size,
    int* natural_size
  );
  void (* get_preferred_width_for_height) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    int height,
    int* minimum_width,
    int* natural_width
  );
  void (* get_aligned_area) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    GtkCellRendererState flags,
    const GdkRectangle* cell_area,
    GdkRectangle* aligned_area
  );
  void (* snapshot) (
    GtkCellRenderer* cell,
    GtkSnapshot* snapshot,
    GtkWidget* widget,
    const GdkRectangle* background_area,
    const GdkRectangle* cell_area,
    GtkCellRendererState flags
  );
  gboolean (* activate) (
    GtkCellRenderer* cell,
    GdkEvent* event,
    GtkWidget* widget,
    const char* path,
    const GdkRectangle* background_area,
    const GdkRectangle* cell_area,
    GtkCellRendererState flags
  );
  GtkCellEditable* (* start_editing) (
    GtkCellRenderer* cell,
    GdkEvent* event,
    GtkWidget* widget,
    const char* path,
    const GdkRectangle* background_area,
    const GdkRectangle* cell_area,
    GtkCellRendererState flags
  );
  void (* editing_canceled) (
    GtkCellRenderer* cell
  );
  void (* editing_started) (
    GtkCellRenderer* cell,
    GtkCellEditable* editable,
    const char* path
  );
  
}

没有可用的描述。

类成员
get_request_mode: GtkSizeRequestMode (* get_request_mode) ( GtkCellRenderer* cell )

调用以获取单元格渲染器是更喜欢按宽取高布局还是按高取宽布局。

get_preferred_width: void (* get_preferred_width) ( GtkCellRenderer* cell, GtkWidget* widget, int* minimum_size, int* natural_size )

调用以获取呈现器的自然宽度。

get_preferred_height_for_width: void (* get_preferred_height_for_width) ( GtkCellRenderer* cell, GtkWidget* widget, int width, int* minimum_height, int* natural_height )

调用以获取适合于指定宽度的呈现器的自然高度。

get_preferred_height: void (* get_preferred_height) ( GtkCellRenderer* cell, GtkWidget* widget, int* minimum_size, int* natural_size )

调用以获取呈现器的自然高度。

get_preferred_width_for_height: void (* get_preferred_width_for_height) ( GtkCellRenderer* cell, GtkWidget* widget, int height, int* minimum_width, int* natural_width )

调用以获取适合于指定高度的呈现器的自然宽度。

get_aligned_area: void (* get_aligned_area) ( GtkCellRenderer* cell, GtkWidget* widget, GtkCellRendererState flags, const GdkRectangle* cell_area, GdkRectangle* aligned_area )

调用以获取在 cell_areacell 使用的对齐区域。

snapshot: void (* snapshot) ( GtkCellRenderer* cell, GtkSnapshot* snapshot, GtkWidget* widget, const GdkRectangle* background_area, const GdkRectangle* cell_area, GtkCellRendererState flags )

调用以将 GtkCellRenderer 的内容制作成快照。

activate: gboolean (* activate) ( GtkCellRenderer* cell, GdkEvent* event, GtkWidget* widget, const char* path, const GdkRectangle* background_area, const GdkRectangle* cell_area, GtkCellRendererState flags )

调用以激活 GtkCellRenderer 的内容。

start_editing: GtkCellEditable* (* start_editing) ( GtkCellRenderer* cell, GdkEvent* event, GtkWidget* widget, const char* path, const GdkRectangle* background_area, const GdkRectangle* cell_area, GtkCellRendererState flags )

调用以启动编辑 GtkCellRenderer 的内容。

editing_canceled: void (* editing_canceled) ( GtkCellRenderer* cell )

当用户取消编辑单元格的过程后,会发出此信号。

editing_started: void (* editing_started) ( GtkCellRenderer* cell, GtkCellEditable* editable, const char* path )

当单元格开始被编辑后,会发出此信号。

虚拟方法

Gtk.CellRendererClass.activate

将激活事件传递给单元格渲染器以供处理。某些单元格渲染器可能会使用事件;例如,GtkCellRendererToggle 在鼠标单击时切换。

废弃:4.10 

Gtk.CellRendererClass.editing_canceled

当用户取消编辑单元格的过程后,会发出此信号。

Gtk.CellRendererClass.editing_started

当单元格开始被编辑后,会发出此信号。

Gtk.CellRendererClass.get_aligned_area

获取 cellcell_area 内使用的对齐区域。用于查找合适的编辑和焦点矩形。

废弃:4.10 

Gtk.CellRendererClass.get_preferred_height

当渲染到 widget 时,检索渲染器的自然尺寸。

废弃:4.10 

Gtk.CellRendererClass.get_preferred_height_for_width

当使用指定的 width 渲染到 widget 时,检索单元格渲染器的最小高度和自然高度。

废弃:4.10 

Gtk.CellRendererClass.get_preferred_width

当渲染到 widget 时,检索渲染器的自然尺寸。

废弃:4.10 

Gtk.CellRendererClass.get_preferred_width_for_height

如果在指定了 heightwidget 中渲染,则检索单元格渲染器的最小宽度和自然宽度。

废弃:4.10 

Gtk.CellRendererClass.get_request_mode

获取单元格渲染器是偏好以 width-for-height 布局还是 height-for-width 布局。

废弃:4.10 

Gtk.CellRendererClass.snapshot

调用 GtkCellRenderer 的虚拟渲染函数。传递的三个矩形在 cr 中都是区域。大多数渲染器将在 cell_area 中绘制;GtkCellRenderer 的 xalign、yalign、xpad 和 ypad 字段应相对于 cell_area 应用。background_area 包括单元格周围的空白空间,还包括包含树形展开器的区域;因此,所有单元格的 background_area 矩形都会平铺以覆盖整个 window

废弃:4.10 

Gtk.CellRendererClass.start_editing

开始编辑该 cell 的内容,通过使用 GtkCellRendererClass.start_editing 虚函数创建新的 GtkCellEditable 控件。

废弃:4.10