Gtk.CellRenderer

g Gtk.CellRenderer Gtk.CellRenderer GObject.InitiallyUnowned GObject.InitiallyUnowned GObject.InitiallyUnowned->Gtk.CellRenderer GObject.Object GObject.Object GObject.Object->GObject.InitiallyUnowned

Subclasses:Gtk.CellRendererPixbuf, Gtk.CellRendererProgress, Gtk.CellRendererSpinner, Gtk.CellRendererText, Gtk.CellRendererToggle

Methods

Inherited:GObject.Object (40)
Structs:Gtk.CellRendererClass (1), GObject.ObjectClass (5)
class set_accessible_type (type)
  activate (event, widget, path, background_area, cell_area, flags)
  get_aligned_area (widget, flags, cell_area)
  get_alignment ()
  get_fixed_size ()
  get_padding ()
  get_preferred_height (widget)
  get_preferred_height_for_width (widget, width)
  get_preferred_size (widget)
  get_preferred_width (widget)
  get_preferred_width_for_height (widget, height)
  get_request_mode ()
  get_sensitive ()
  get_size (widget, cell_area)
  get_state (widget, cell_state)
  get_visible ()
  is_activatable ()
  render (cr, widget, background_area, cell_area, flags)
  set_alignment (xalign, yalign)
  set_fixed_size (width, height)
  set_padding (xpad, ypad)
  set_sensitive (sensitive)
  set_visible (visible)
  start_editing (event, widget, path, background_area, cell_area, flags)
  stop_editing (canceled)

Virtual Methods

Inherited:GObject.Object (7)
  do_activate (event, widget, path, background_area, cell_area, flags)
  do_editing_canceled ()
  do_editing_started (editable, path)
  do_get_aligned_area (widget, flags, cell_area)
  do_get_preferred_height (widget)
  do_get_preferred_height_for_width (widget, width)
  do_get_preferred_width (widget)
  do_get_preferred_width_for_height (widget, height)
  do_get_request_mode ()
  do_get_size (widget, cell_area)
  do_render (cr, widget, background_area, cell_area, flags)
  do_start_editing (event, widget, path, background_area, cell_area, flags)

Properties

Name Type Flags Short Description
cell-background str w Cell background color as a string
cell-background-gdk Gdk.Color d/r/w Cell background color as a Gdk.Color deprecated
cell-background-rgba Gdk.RGBA r/w Cell background color as a Gdk.RGBA
cell-background-set bool r/w/en Whether the cell background color is set
editing bool r Whether the cell renderer is currently in editing mode
height int r/w/en The fixed height
is-expanded bool r/w/en Row is an expander row, and is expanded
is-expander bool r/w/en Row has children
mode Gtk.CellRendererMode r/w/en Editable mode of the CellRenderer
sensitive bool r/w/en xlib.Display the cell sensitive
visible bool r/w/en xlib.Display the cell
width int r/w/en The fixed width
xalign float r/w/en The x-align
xpad int r/w/en The xpad
yalign float r/w/en The y-align
ypad int r/w/en The ypad

Signals

Inherited:GObject.Object (1)
Name Short Description
editing-canceled This signal gets emitted when the user cancels the process of editing a cell.
editing-started This signal gets emitted when a cell starts to be edited.

Fields

Inherited:GObject.Object (1)
Name Type Access Description
parent_instance GObject.InitiallyUnowned r  

Class Details

class Gtk.CellRenderer(**kwargs)
Bases:GObject.InitiallyUnowned
Abstract:Yes
Structure:Gtk.CellRendererClass

The Gtk.CellRenderer is a base class of a set of objects used for rendering a cell to a cairo.Context. These objects are used primarily by the Gtk.TreeView widget, though they aren’t tied to them in any specific way. It is worth noting that Gtk.CellRenderer is not a Gtk.Widget and cannot be treated as such.

The primary use of a Gtk.CellRenderer is for drawing a certain graphical elements on a cairo.Context. Typically, one cell renderer is used to draw many cells on the screen. To this extent, it isn’t expected that a CellRenderer keep any permanent state around. Instead, any state is set just prior to use using GObject.Objects property system. Then, the cell is measured using Gtk.CellRenderer.get_size(). Finally, the cell is rendered in the correct location using Gtk.CellRenderer.render().

There are a number of rules that must be followed when writing a new Gtk.CellRenderer. First and foremost, it’s important that a certain set of properties will always yield a cell renderer of the same size, barring a Gtk.Style change. The Gtk.CellRenderer also has a number of generic properties that are expected to be honored by all children.

Beyond merely rendering a cell, cell renderers can optionally provide active user interface elements. A cell renderer can be “activatable” like Gtk.CellRendererToggle, which toggles when it gets activated by a mouse click, or it can be “editable” like Gtk.CellRendererText, which allows the user to edit the text using a Gtk.Entry. To make a cell renderer activatable or editable, you have to implement the Gtk.CellRendererClass.activate or Gtk.CellRendererClass.start_editing virtual functions, respectively.

Many properties of Gtk.CellRenderer and its subclasses have a corresponding “set” property, e.g. “cell-background-set” corresponds to “cell-background”. These “set” properties reflect whether a property has been set or not. You should not set them independently.

classmethod set_accessible_type(type)
Parameters:type (GObject.GType) – The object type that implements the accessible for widget_class. The type must be a subtype of Gtk.RendererCellAccessible

Sets the type to be used for creating accessibles for cells rendered by cell renderers of self. Note that multiple accessibles will be created.

This function should only be called from class init functions of cell renderers.

activate(event, widget, path, background_area, cell_area, flags)[source]
Parameters:
Returns:

True if the event was consumed/handled

Return type:

bool

Passes an activate event to the cell renderer for possible processing. Some cell renderers may use events; for example, Gtk.CellRendererToggle toggles when it gets a mouse click.

get_aligned_area(widget, flags, cell_area)[source]
Parameters:
Returns:

the return location for the space inside cell_area that would acually be used to render.

Return type:

aligned_area: Gdk.Rectangle

Gets the aligned area used by self inside cell_area. Used for finding the appropriate edit and focus rectangle.

New in version 3.0.

get_alignment()[source]
Returns:
xalign:location to fill in with the x alignment of the cell, or None
yalign:location to fill in with the y alignment of the cell, or None
Return type:(xalign: float, yalign: float)

Fills in xalign and yalign with the appropriate values of self.

New in version 2.18.

get_fixed_size()[source]
Returns:
width:location to fill in with the fixed width of the cell, or None
height:location to fill in with the fixed height of the cell, or None
Return type:(width: int, height: int)

Fills in width and height with the appropriate size of self.

get_padding()[source]
Returns:
xpad:location to fill in with the x padding of the cell, or None
ypad:location to fill in with the y padding of the cell, or None
Return type:(xpad: int, ypad: int)

Fills in xpad and ypad with the appropriate values of self.

New in version 2.18.

get_preferred_height(widget)[source]
Parameters:widget (Gtk.Widget) – the Gtk.Widget this cell will be rendering to
Returns:
minimum_size:location to store the minimum size, or None
natural_size:location to store the natural size, or None
Return type:(minimum_size: int, natural_size: int)

Retreives a renderer’s natural size when rendered to widget.

New in version 3.0.

get_preferred_height_for_width(widget, width)[source]
Parameters:
  • widget (Gtk.Widget) – the Gtk.Widget this cell will be rendering to
  • width (int) – the size which is available for allocation
Returns:

minimum_height:location for storing the minimum size, or None
natural_height:location for storing the preferred size, or None

Return type:

(minimum_height: int, natural_height: int)

Retreives a cell renderers’s minimum and natural height if it were rendered to widget with the specified width.

New in version 3.0.

get_preferred_size(widget)[source]
Parameters:widget (Gtk.Widget) – the Gtk.Widget this cell will be rendering to
Returns:
minimum_size:location for storing the minimum size, or None
natural_size:location for storing the natural size, or None
Return type:(minimum_size: Gtk.Requisition, natural_size: Gtk.Requisition)

Retrieves the minimum and natural size of a cell taking into account the widget’s preference for height-for-width management.

New in version 3.0.

get_preferred_width(widget)[source]
Parameters:widget (Gtk.Widget) – the Gtk.Widget this cell will be rendering to
Returns:
minimum_size:location to store the minimum size, or None
natural_size:location to store the natural size, or None
Return type:(minimum_size: int, natural_size: int)

Retreives a renderer’s natural size when rendered to widget.

New in version 3.0.

get_preferred_width_for_height(widget, height)[source]
Parameters:
  • widget (Gtk.Widget) – the Gtk.Widget this cell will be rendering to
  • height (int) – the size which is available for allocation
Returns:

minimum_width:location for storing the minimum size, or None
natural_width:location for storing the preferred size, or None

Return type:

(minimum_width: int, natural_width: int)

Retreives a cell renderers’s minimum and natural width if it were rendered to widget with the specified height.

New in version 3.0.

get_request_mode()[source]
Returns:The Gtk.SizeRequestMode preferred by this renderer.
Return type:Gtk.SizeRequestMode

Gets whether the cell renderer prefers a height-for-width layout or a width-for-height layout.

New in version 3.0.

get_sensitive()[source]
Returns:True if the cell renderer is sensitive
Return type:bool

Returns the cell renderer’s sensitivity.

New in version 2.18.

get_size(widget, cell_area)[source]
Parameters:
Returns:

x_offset:location to return x offset of cell relative to cell_area, or None
y_offset:location to return y offset of cell relative to cell_area, or None
width:location to return width needed to render a cell, or None
height:location to return height needed to render a cell, or None

Return type:

(x_offset: int, y_offset: int, width: int, height: int)

Obtains the width and height needed to render the cell. Used by view widgets to determine the appropriate size for the cell_area passed to Gtk.CellRenderer.render(). If cell_area is not None, fills in the x and y offsets (if set) of the cell relative to this location.

Please note that the values set in width and height, as well as those in x_offset and y_offset are inclusive of the xpad and ypad properties.

Deprecated since version 3.0: Use Gtk.CellRenderer.get_preferred_size() instead.

get_state(widget, cell_state)[source]
Parameters:
Returns:

the widget state flags applying to self

Return type:

Gtk.StateFlags

Translates the cell renderer state to Gtk.StateFlags, based on the cell renderer and widget sensitivity, and the given Gtk.CellRendererState.

New in version 3.0.

get_visible()[source]
Returns:True if the cell renderer is visible
Return type:bool

Returns the cell renderer’s visibility.

New in version 2.18.

is_activatable()[source]
Returns:True if the cell renderer can do anything when activated
Return type:bool

Checks whether the cell renderer can do something when activated.

New in version 3.0.

render(cr, widget, background_area, cell_area, flags)[source]
Parameters:

Invokes the virtual render function of the Gtk.CellRenderer. The three passed-in rectangles are areas in cr. Most renderers will draw within cell_area; the xalign, yalign, xpad, and ypad fields of the Gtk.CellRenderer should be honored with respect to cell_area. background_area includes the blank space around the cell, and also the area containing the tree expander; so the background_area rectangles for all cells tile to cover the entire window.

set_alignment(xalign, yalign)[source]
Parameters:
  • xalign (float) – the x alignment of the cell renderer
  • yalign (float) – the y alignment of the cell renderer

Sets the renderer’s alignment within its available space.

New in version 2.18.

set_fixed_size(width, height)[source]
Parameters:
  • width (int) – the width of the cell renderer, or -1
  • height (int) – the height of the cell renderer, or -1

Sets the renderer size to be explicit, independent of the properties set.

set_padding(xpad, ypad)[source]
Parameters:
  • xpad (int) – the x padding of the cell renderer
  • ypad (int) – the y padding of the cell renderer

Sets the renderer’s padding.

New in version 2.18.

set_sensitive(sensitive)[source]
Parameters:sensitive (bool) – the sensitivity of the cell

Sets the cell renderer’s sensitivity.

New in version 2.18.

set_visible(visible)[source]
Parameters:visible (bool) – the visibility of the cell

Sets the cell renderer’s visibility.

New in version 2.18.

start_editing(event, widget, path, background_area, cell_area, flags)[source]
Parameters:
Returns:

A new Gtk.CellEditable, or None

Return type:

Gtk.CellEditable or None

Passes an activate event to the cell renderer for possible processing.

stop_editing(canceled)[source]
Parameters:canceled (bool) – True if the editing has been canceled

Informs the cell renderer that the editing is stopped. If canceled is True, the cell renderer will emit the Gtk.CellRenderer ::editing-canceled signal.

This function should be called by cell renderer implementations in response to the Gtk.CellEditable ::editing-done signal of Gtk.CellEditable.

New in version 2.6.

do_activate(event, widget, path, background_area, cell_area, flags) virtual
Parameters:
Returns:

True if the event was consumed/handled

Return type:

bool

Passes an activate event to the cell renderer for possible processing. Some cell renderers may use events; for example, Gtk.CellRendererToggle toggles when it gets a mouse click.

do_editing_canceled() virtual
do_editing_started(editable, path) virtual
Parameters:
do_get_aligned_area(widget, flags, cell_area) virtual
Parameters:
Returns:

the return location for the space inside cell_area that would acually be used to render.

Return type:

aligned_area: Gdk.Rectangle

Gets the aligned area used by cell inside cell_area. Used for finding the appropriate edit and focus rectangle.

New in version 3.0.

do_get_preferred_height(widget) virtual
Parameters:widget (Gtk.Widget) – the Gtk.Widget this cell will be rendering to
Returns:
minimum_size:location to store the minimum size, or None
natural_size:location to store the natural size, or None
Return type:(minimum_size: int, natural_size: int)

Retreives a renderer’s natural size when rendered to widget.

New in version 3.0.

do_get_preferred_height_for_width(widget, width) virtual
Parameters:
  • widget (Gtk.Widget) – the Gtk.Widget this cell will be rendering to
  • width (int) – the size which is available for allocation
Returns:

minimum_height:location for storing the minimum size, or None
natural_height:location for storing the preferred size, or None

Return type:

(minimum_height: int, natural_height: int)

Retreives a cell renderers’s minimum and natural height if it were rendered to widget with the specified width.

New in version 3.0.

do_get_preferred_width(widget) virtual
Parameters:widget (Gtk.Widget) – the Gtk.Widget this cell will be rendering to
Returns:
minimum_size:location to store the minimum size, or None
natural_size:location to store the natural size, or None
Return type:(minimum_size: int, natural_size: int)

Retreives a renderer’s natural size when rendered to widget.

New in version 3.0.

do_get_preferred_width_for_height(widget, height) virtual
Parameters:
  • widget (Gtk.Widget) – the Gtk.Widget this cell will be rendering to
  • height (int) – the size which is available for allocation
Returns:

minimum_width:location for storing the minimum size, or None
natural_width:location for storing the preferred size, or None

Return type:

(minimum_width: int, natural_width: int)

Retreives a cell renderers’s minimum and natural width if it were rendered to widget with the specified height.

New in version 3.0.

do_get_request_mode() virtual
Returns:The Gtk.SizeRequestMode preferred by this renderer.
Return type:Gtk.SizeRequestMode

Gets whether the cell renderer prefers a height-for-width layout or a width-for-height layout.

New in version 3.0.

do_get_size(widget, cell_area) virtual
Parameters:
Returns:

x_offset:location to return x offset of cell relative to cell_area, or None
y_offset:location to return y offset of cell relative to cell_area, or None
width:location to return width needed to render a cell, or None
height:location to return height needed to render a cell, or None

Return type:

(x_offset: int, y_offset: int, width: int, height: int)

Obtains the width and height needed to render the cell. Used by view widgets to determine the appropriate size for the cell_area passed to Gtk.CellRenderer.render(). If cell_area is not None, fills in the x and y offsets (if set) of the cell relative to this location.

Please note that the values set in width and height, as well as those in x_offset and y_offset are inclusive of the xpad and ypad properties.

Deprecated since version 3.0: Use Gtk.CellRenderer.get_preferred_size() instead.

do_render(cr, widget, background_area, cell_area, flags) virtual
Parameters:

Invokes the virtual render function of the Gtk.CellRenderer. The three passed-in rectangles are areas in cr. Most renderers will draw within cell_area; the xalign, yalign, xpad, and ypad fields of the Gtk.CellRenderer should be honored with respect to cell_area. background_area includes the blank space around the cell, and also the area containing the tree expander; so the background_area rectangles for all cells tile to cover the entire window.

do_start_editing(event, widget, path, background_area, cell_area, flags) virtual
Parameters:
Returns:

A new Gtk.CellEditable, or None

Return type:

Gtk.CellEditable or None

Passes an activate event to the cell renderer for possible processing.

Signal Details

Gtk.CellRenderer.signals.editing_canceled(cell_renderer)
Signal Name:editing-canceled
Flags:RUN_FIRST
Parameters:cell_renderer (Gtk.CellRenderer) – The object which received the signal

This signal gets emitted when the user cancels the process of editing a cell. For example, an editable cell renderer could be written to cancel editing when the user presses Escape.

See also: Gtk.CellRenderer.stop_editing().

New in version 2.4.

Gtk.CellRenderer.signals.editing_started(cell_renderer, editable, path)
Signal Name:

editing-started

Flags:

RUN_FIRST

Parameters:

This signal gets emitted when a cell starts to be edited. The intended use of this signal is to do special setup on editable, e.g. adding a Gtk.EntryCompletion or setting up additional columns in a Gtk.ComboBox.

Note that GTK+ doesn’t guarantee that cell renderers will continue to use the same kind of widget for editing in future releases, therefore you should check the type of editable before doing any specific setup, as in the following example:

static void
text_editing_started (GtkCellRenderer *cell,
                      GtkCellEditable *editable,
                      const gchar     *path,
                      gpointer         data)
{
  if (GTK_IS_ENTRY (editable))
    {
      GtkEntry *entry = GTK_ENTRY (editable);

      // ... create a GtkEntryCompletion

      gtk_entry_set_completion (entry, completion);
    }
}

New in version 2.6.

Property Details

Gtk.CellRenderer.props.cell_background
Name:cell-background
Type:str
Default Value:None
Flags:WRITABLE

Cell background color as a string

Gtk.CellRenderer.props.cell_background_gdk
Name:cell-background-gdk
Type:Gdk.Color
Default Value:None
Flags:DEPRECATED, READABLE, WRITABLE

Cell background as a Gdk.Color

Deprecated since version 3.4: Use Gtk.CellRenderer :cell-background-rgba instead.

Gtk.CellRenderer.props.cell_background_rgba
Name:cell-background-rgba
Type:Gdk.RGBA
Default Value:None
Flags:READABLE, WRITABLE

Cell background as a Gdk.RGBA

New in version 3.0.

Gtk.CellRenderer.props.cell_background_set
Name:cell-background-set
Type:bool
Default Value:False
Flags:READABLE, WRITABLE, EXPLICIT_NOTIFY

Whether the cell background color is set

Gtk.CellRenderer.props.editing
Name:editing
Type:bool
Default Value:False
Flags:READABLE

Whether the cell renderer is currently in editing mode

Gtk.CellRenderer.props.height
Name:height
Type:int
Default Value:-1
Flags:READABLE, WRITABLE, EXPLICIT_NOTIFY

The fixed height

Gtk.CellRenderer.props.is_expanded
Name:is-expanded
Type:bool
Default Value:False
Flags:READABLE, WRITABLE, EXPLICIT_NOTIFY

Row is an expander row, and is expanded

Gtk.CellRenderer.props.is_expander
Name:is-expander
Type:bool
Default Value:False
Flags:READABLE, WRITABLE, EXPLICIT_NOTIFY

Row has children

Gtk.CellRenderer.props.mode
Name:mode
Type:Gtk.CellRendererMode
Default Value:Gtk.CellRendererMode.INERT
Flags:READABLE, WRITABLE, EXPLICIT_NOTIFY

Editable mode of the CellRenderer

Gtk.CellRenderer.props.sensitive
Name:sensitive
Type:bool
Default Value:True
Flags:READABLE, WRITABLE, EXPLICIT_NOTIFY

xlib.Display the cell sensitive

Gtk.CellRenderer.props.visible
Name:visible
Type:bool
Default Value:True
Flags:READABLE, WRITABLE, EXPLICIT_NOTIFY

xlib.Display the cell

Gtk.CellRenderer.props.width
Name:width
Type:int
Default Value:-1
Flags:READABLE, WRITABLE, EXPLICIT_NOTIFY

The fixed width

Gtk.CellRenderer.props.xalign
Name:xalign
Type:float
Default Value:0.5
Flags:READABLE, WRITABLE, EXPLICIT_NOTIFY

The x-align

Gtk.CellRenderer.props.xpad
Name:xpad
Type:int
Default Value:0
Flags:READABLE, WRITABLE, EXPLICIT_NOTIFY

The xpad

Gtk.CellRenderer.props.yalign
Name:yalign
Type:float
Default Value:0.5
Flags:READABLE, WRITABLE, EXPLICIT_NOTIFY

The y-align

Gtk.CellRenderer.props.ypad
Name:ypad
Type:int
Default Value:0
Flags:READABLE, WRITABLE, EXPLICIT_NOTIFY

The ypad