TreeViewColumn

Deprecated since version 4.10: Use ColumnView and ColumnViewColumn instead of TreeView to show a tabular list

class TreeViewColumn(title='', cell_renderer=None, **attributes)

Superclasses: InitiallyUnowned, Object

Implemented Interfaces: Buildable, CellLayout

A visible column in a TreeView widget

The GtkTreeViewColumn object represents a visible column in a GtkTreeView widget. It allows to set properties of the column header, and functions as a holding pen for the cell renderers which determine how the data in the column is displayed.

Please refer to the tree widget conceptual overview for an overview of all the objects and data types related to the tree widget and how they work together, and to the TreeView documentation for specifics about the CSS node structure for treeviews and their headers.

Constructors

class TreeViewColumn
classmethod new() TreeViewColumn

Creates a new GtkTreeViewColumn.

Deprecated since version 4.10: Use GtkColumnView instead

classmethod new_with_area(area: CellArea) TreeViewColumn

Creates a new GtkTreeViewColumn using area to render its cells.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

area – the GtkCellArea that the newly created column should use to layout cells.

Methods

class TreeViewColumn
add_attribute(cell_renderer: CellRenderer, attribute: str, column: int) None

Adds an attribute mapping to the list in tree_column.

The column is the column of the model to get a value from, and the attribute is the parameter on cell_renderer to be set from the value. So for example if column 2 of the model contains strings, you could have the “text” attribute of a GtkCellRendererText get its values from column 2.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:
  • cell_renderer – the GtkCellRenderer to set attributes on

  • attribute – An attribute on the renderer

  • column – The column position on the model to get the attribute from.

cell_get_position(cell_renderer: CellRenderer) tuple[bool, int, int]

Obtains the horizontal position and size of a cell in a column.

If the cell is not found in the column, start_pos and width are not changed and False is returned.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

cell_renderer – a GtkCellRenderer

cell_get_size() tuple[int, int, int, int]

Obtains the width and height needed to render the column. This is used primarily by the GtkTreeView.

Deprecated since version 4.10: Use GtkColumnView instead

cell_is_visible() bool

Returns True if any of the cells packed into the tree_column are visible. For this to be meaningful, you must first initialize the cells with cell_set_cell_data()

Deprecated since version 4.10: Use GtkColumnView instead

cell_set_cell_data(tree_model: TreeModel, iter: TreeIter, is_expander: bool, is_expanded: bool) None

Sets the cell renderer based on the tree_model and iter. That is, for every attribute mapping in tree_column, it will get a value from the set column on the iter, and use that value to set the attribute on the cell renderer. This is used primarily by the GtkTreeView.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:
  • tree_model – The GtkTreeModel to get the cell renderers attributes from.

  • iter – The GtkTreeIter to get the cell renderer’s attributes from.

  • is_expanderTrue, if the row has children

  • is_expandedTrue, if the row has visible children

clear() None

Unsets all the mappings on all renderers on the tree_column.

Deprecated since version 4.10: Use GtkColumnView instead

clear_attributes(cell_renderer: CellRenderer) None

Clears all existing attributes previously set with set_attributes().

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

cell_renderer – a GtkCellRenderer to clear the attribute mapping on.

clicked() None

Emits the “clicked” signal on the column. This function will only work if tree_column is clickable.

Deprecated since version 4.10: Use GtkColumnView instead

focus_cell(cell: CellRenderer) None

Sets the current keyboard focus to be at cell, if the column contains 2 or more editable and activatable cells.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

cell – A GtkCellRenderer

get_alignment() float

Returns the current x alignment of tree_column. This value can range between 0.0 and 1.0.

Deprecated since version 4.10: Use GtkColumnView instead

get_button() Widget

Returns the button used in the treeview column header

Deprecated since version 4.10: Use GtkColumnView instead

get_clickable() bool

Returns True if the user can click on the header for the column.

Deprecated since version 4.10: Use GtkColumnView instead

get_expand() bool

Returns True if the column expands to fill available space.

Deprecated since version 4.10: Use GtkColumnView instead

get_fixed_width() int

Gets the fixed width of the column. This may not be the actual displayed width of the column; for that, use get_width().

Deprecated since version 4.10: Use GtkColumnView instead

get_max_width() int

Returns the maximum width in pixels of the tree_column, or -1 if no maximum width is set.

Deprecated since version 4.10: Use GtkColumnView instead

get_min_width() int

Returns the minimum width in pixels of the tree_column, or -1 if no minimum width is set.

Deprecated since version 4.10: Use GtkColumnView instead

get_reorderable() bool

Returns True if the tree_column can be reordered by the user.

Deprecated since version 4.10: Use GtkColumnView instead

get_resizable() bool

Returns True if the tree_column can be resized by the end user.

Deprecated since version 4.10: Use GtkColumnView instead

get_sizing() TreeViewColumnSizing

Returns the current type of tree_column.

Deprecated since version 4.10: Use GtkColumnView instead

get_sort_column_id() int

Gets the logical sort_column_id that the model sorts on when this column is selected for sorting.

See set_sort_column_id.

Deprecated since version 4.10: Use GtkColumnView instead

get_sort_indicator() bool

Gets the value set by set_sort_indicator().

Deprecated since version 4.10: Use GtkColumnView instead

get_sort_order() SortType

Gets the value set by set_sort_order().

Deprecated since version 4.10: Use GtkColumnView instead

get_spacing() int

Returns the spacing of tree_column.

Deprecated since version 4.10: Use GtkColumnView instead

get_title() str

Returns the title of the widget.

Deprecated since version 4.10: Use GtkColumnView instead

get_tree_view() Widget | None

Returns the GtkTreeView wherein tree_column has been inserted. If column is currently not inserted in any tree view, None is returned.

Deprecated since version 4.10: Use GtkColumnView instead

get_visible() bool

Returns True if tree_column is visible.

Deprecated since version 4.10: Use GtkColumnView instead

get_widget() Widget | None

Returns the GtkWidget in the button on the column header.

If a custom widget has not been set then None is returned.

Deprecated since version 4.10: Use GtkColumnView instead

get_width() int

Returns the current size of tree_column in pixels.

Deprecated since version 4.10: Use GtkColumnView instead

get_x_offset() int

Returns the current X offset of tree_column in pixels.

Deprecated since version 4.10: Use GtkColumnView instead

pack_end(cell: CellRenderer, expand: bool) None

Adds the cell to end of the column. If expand is False, then the cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which expand is True.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:
  • cell – The GtkCellRenderer

  • expandTrue if cell is to be given extra space allocated to tree_column.

pack_start(cell: CellRenderer, expand: bool) None

Packs the cell into the beginning of the column. If expand is False, then the cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which expand is True.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:
  • cell – The GtkCellRenderer

  • expandTrue if cell is to be given extra space allocated to tree_column.

queue_resize() None

Flags the column, and the cell renderers added to this column, to have their sizes renegotiated.

Deprecated since version 4.10: Use GtkColumnView instead

set_alignment(xalign: float) None

Sets the alignment of the title or custom widget inside the column header. The alignment determines its location inside the button – 0.0 for left, 0.5 for center, 1.0 for right.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

xalign – The alignment, which is between [0.0 and 1.0] inclusive.

set_attributes(cell_renderer, **attributes)

Sets the attributes in the list as the attributes of tree_column.

The attributes should be in attribute/column order, as in add_attribute(). All existing attributes are removed, and replaced with the new attributes.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:
  • cell_renderer – the GtkCellRenderer we’re setting the attributes of

  • attributes

set_cell_data_func(cell_renderer, func, func_data=None)

Sets the GtkTreeCellDataFunc to use for the column.

This function is used instead of the standard attributes mapping for setting the column value, and should set the value of tree_column’s cell renderer as appropriate. func may be None to remove an older one.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:
  • cell_renderer – A GtkCellRenderer

  • func – The GtkTreeCellDataFunc to use.

  • func_data – The user data for func.

set_clickable(clickable: bool) None

Sets the header to be active if clickable is True. When the header is active, then it can take keyboard focus, and can be clicked.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

clickableTrue if the header is active.

set_expand(expand: bool) None

Sets the column to take available extra space. This space is shared equally amongst all columns that have the expand set to True. If no column has this option set, then the last column gets all extra space. By default, every column is created with this False.

Along with “fixed-width”, the “expand” property changes when the column is resized by the user.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

expandTrue if the column should expand to fill available space.

set_fixed_width(fixed_width: int) None

If fixed_width is not -1, sets the fixed width of tree_column; otherwise unsets it. The effective value of fixed_width is clamped between the minimum and maximum width of the column; however, the value stored in the “fixed-width” property is not clamped. If the column sizing is GROW_ONLY or AUTOSIZE, setting a fixed width overrides the automatically calculated width. Note that fixed_width is only a hint to GTK; the width actually allocated to the column may be greater or less than requested.

Along with “expand”, the “fixed-width” property changes when the column is resized by the user.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

fixed_width – The new fixed width, in pixels, or -1.

set_max_width(max_width: int) None

Sets the maximum width of the tree_column. If max_width is -1, then the maximum width is unset. Note, the column can actually be wider than max width if it’s the last column in a view. In this case, the column expands to fill any extra space.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

max_width – The maximum width of the column in pixels, or -1.

set_min_width(min_width: int) None

Sets the minimum width of the tree_column. If min_width is -1, then the minimum width is unset.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

min_width – The minimum width of the column in pixels, or -1.

set_reorderable(reorderable: bool) None

If reorderable is True, then the column can be reordered by the end user dragging the header.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

reorderableTrue, if the column can be reordered.

set_resizable(resizable: bool) None

If resizable is True, then the user can explicitly resize the column by grabbing the outer edge of the column button.

If resizable is True and sizing mode of the column is AUTOSIZE, then the sizing mode is changed to GROW_ONLY.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

resizableTrue, if the column can be resized

set_sizing(type: TreeViewColumnSizing) None

Sets the growth behavior of tree_column to type.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

type – The ``GtkTreeViewColumn``Sizing.

set_sort_column_id(sort_column_id: int) None

Sets the logical sort_column_id that this column sorts on when this column is selected for sorting. Doing so makes the column header clickable.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

sort_column_id – The sort_column_id of the model to sort on.

set_sort_indicator(setting: bool) None

Call this function with a setting of True to display an arrow in the header button indicating the column is sorted. Call set_sort_order() to change the direction of the arrow.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

settingTrue to display an indicator that the column is sorted

set_sort_order(order: SortType) None

Changes the appearance of the sort indicator.

This does not actually sort the model. Use set_sort_column_id() if you want automatic sorting support. This function is primarily for custom sorting behavior, and should be used in conjunction with set_sort_column_id() to do that. For custom models, the mechanism will vary.

The sort indicator changes direction to indicate normal sort or reverse sort. Note that you must have the sort indicator enabled to see anything when calling this function; see set_sort_indicator().

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

order – sort order that the sort indicator should indicate

set_spacing(spacing: int) None

Sets the spacing field of tree_column, which is the number of pixels to place between cell renderers packed into it.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

spacing – distance between cell renderers in pixels.

set_title(title: str) None

Sets the title of the tree_column. If a custom widget has been set, then this value is ignored.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

title – The title of the tree_column.

set_visible(visible: bool) None

Sets the visibility of tree_column.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

visibleTrue if the tree_column is visible.

set_widget(widget: Widget | None = None) None

Sets the widget in the header to be widget. If widget is None, then the header button is set with a GtkLabel set to the title of tree_column.

Deprecated since version 4.10: Use GtkColumnView instead

Parameters:

widget – A child GtkWidget

Properties

class TreeViewColumn
props.alignment: float
props.cell_area: CellArea

The GtkCellArea used to layout cell renderers for this column.

If no area is specified when creating the tree view column with new_with_area() a horizontally oriented GtkCellAreaBox will be used.

props.clickable: bool
props.expand: bool
props.fixed_width: int
props.max_width: int
props.min_width: int
props.reorderable: bool
props.resizable: bool
props.sizing: TreeViewColumnSizing
props.sort_column_id: int

Logical sort column ID this column sorts on when selected for sorting. Setting the sort column ID makes the column header clickable. Set to -1 to make the column unsortable.

props.sort_indicator: bool
props.sort_order: SortType
props.spacing: int
props.title: str
props.visible: bool
props.widget: Widget
props.width: int
props.x_offset: int

Signals

class TreeViewColumn.signals
clicked() None

Emitted when the column’s header has been clicked.