---
name: "Gtk2::TreeView"
section: "3pm"
platform: "linux"
package: "libgtk2-perl-doc"
version: "2:1.24992-1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/Gtk2::TreeView"
---

# Gtk2::TreeView(3pm)

wrapper for GtkTreeView

## NAME

Gtk2::TreeView - wrapper for GtkTreeView

## HIERARCHY

```
  Glib::Object
  +----Glib::InitiallyUnowned
       +----Gtk2::Object
            +----Gtk2::Widget
                 +----Gtk2::Container
                      +----Gtk2::TreeView
```

## INTERFACES

```
  Glib::Object::_Unregistered::AtkImplementorIface
  Gtk2::Buildable
```

## METHODS

### widget = Gtk2::TreeView-\>new ($model=undef)

- •

  `$model` (Gtk2::TreeModel)

### widget = Gtk2::TreeView-\>new\_with\_model ($model)

- •

  `$model` (Gtk2::TreeModel)

### integer = $tree\_view-\>append\_column ($column)

- •

  `$column` (Gtk2::TreeViewColumn)

### rectangle = $tree\_view-\>get\_background\_area ($path, $column)

- •

  `$path` (Gtk2::TreePath or undef)

- •

  `$column` (Gtk2::TreeViewColumn or undef)

### window = $tree\_view-\>get\_bin\_window

### rectangle = $tree\_view-\>get\_cell\_area ($path, $column)

- •

  `$path` (Gtk2::TreePath or undef)

- •

  `$column` (Gtk2::TreeViewColumn or undef)

### $tree\_view-\>collapse\_all

### boolean = $tree\_view-\>collapse\_row ($path)

- •

  `$path` (Gtk2::TreePath)

### $tree\_view-\>set\_column\_drag\_function ($func, $data=undef)

- •

  `$func` (scalar)

- •

  `$data` (scalar)

### treeviewcolumn = $tree\_view-\>get\_column ($n)

- •

  `$n` (integer)

### $tree\_view-\>columns\_autosize

### list = $tree\_view-\>get\_columns

Returns an array of columns.

### (tx, ty) = $tree\_view-\>convert\_bin\_window\_to\_tree\_coords ($bx, $by)

- •

  `$bx` (integer)

- •

  `$by` (integer)

Since: gtk+ 2.12

### (wx, wy) = $tree\_view-\>convert\_bin\_window\_to\_widget\_coords ($bx, $by)

- •

  `$bx` (integer)

- •

  `$by` (integer)

Since: gtk+ 2.12

### (bx, by) = $tree\_view-\>convert\_tree\_to\_bin\_window\_coords ($tx, $ty)

- •

  `$tx` (integer)

- •

  `$ty` (integer)

Since: gtk+ 2.12

### (wx, wy) = $tree\_view-\>convert\_tree\_to\_widget\_coords ($tx, $ty)

- •

  `$tx` (integer)

- •

  `$ty` (integer)

Since: gtk+ 2.12

### (bx, by) = $tree\_view-\>convert\_widget\_to\_bin\_window\_coords ($wx, $wy)

- •

  `$wx` (integer)

- •

  `$wy` (integer)

Since: gtk+ 2.12

### (tx, ty) = $tree\_view-\>convert\_widget\_to\_tree\_coords ($wx, $wy)

- •

  `$wx` (integer)

- •

  `$wy` (integer)

Since: gtk+ 2.12

### pixmap = $tree\_view-\>create\_row\_drag\_icon ($path)

- •

  `$path` (Gtk2::TreePath)

### (path, focus\_column) = $tree\_view-\>get\_cursor

Returns the Gtk2::TreePath and Gtk2::TreeViewColumn of the cell with the keyboard focus cursor.  Either may be undef.

### $tree\_view-\>set\_cursor\_on\_cell ($path, $focus\_column, $focus\_cell, $start\_editing)

- •

  `$path` (Gtk2::TreePath)

- •

  `$focus_column` (Gtk2::TreeViewColumn or undef)

- •

  `$focus_cell` (Gtk2::CellRenderer or undef)

- •

  `$start_editing` (boolean)

Since: gtk+ 2.2

### $tree\_view-\>set\_cursor ($path, $focus\_column=undef, $start\_editing=FALSE)

- •

  `$path` (Gtk2::TreePath)

- •

  `$focus_column` (Gtk2::TreeViewColumn or undef)

- •

  `$start_editing` (boolean)

### (path, dropposition) = $tree\_view-\>get\_dest\_row\_at\_pos ($drag\_x, $drag\_y)

- •

  `$drag_x` (integer)

- •

  `$drag_y` (integer)

### (path, dropposition) = $tree\_view-\>get\_drag\_dest\_row

### $tree\_view-\>set\_drag\_dest\_row ($path, $pos)

- •

  `$path` (Gtk2::TreePath or undef)

- •

  `$pos` (Gtk2::TreeViewDropPosition)

### $tree\_view-\>enable\_model\_drag\_dest ($actions, ...)

- •

  `$actions` (Gtk2::Gdk::DragAction)

- •

  ... (list) of Gtk2::TargetEntry's

### $tree\_view-\>enable\_model\_drag\_source ($start\_button\_mask, $actions, ...)

- •

  `$start_button_mask` (Gtk2::Gdk::ModifierType)

- •

  `$actions` (Gtk2::Gdk::DragAction)

- •

  ... (list) of Gtk2::TargetEntry's

### boolean = $tree\_view-\>get\_enable\_search

### $tree\_view-\>set\_enable\_search ($enable\_search)

- •

  `$enable_search` (boolean)

### boolean = $tree\_view-\>get\_enable\_tree\_lines

Since: gtk+ 2.10

### $tree\_view-\>set\_enable\_tree\_lines ($enabled)

- •

  `$enabled` (boolean)

Since: gtk+ 2.10

### $tree\_view-\>expand\_all

### boolean = $tree\_view-\>expand\_row ($path, $open\_all)

- •

  `$path` (Gtk2::TreePath)

- •

  `$open_all` (boolean)

### $tree\_view-\>expand\_to\_path ($path)

- •

  `$path` (Gtk2::TreePath)

Since: gtk+ 2.2

### treeviewcolumn or undef = $tree\_view-\>get\_expander\_column

### $tree\_view-\>set\_expander\_column ($column)

- •

  `$column` (Gtk2::TreeViewColumn or undef)

### boolean = $treeview-\>get\_fixed\_height\_mode

Since: gtk+ 2.6

### $treeview-\>set\_fixed\_height\_mode ($enable)

- •

  `$enable` (boolean)

Since: gtk+ 2.6

### treeviewgridlines = $tree\_view-\>get\_grid\_lines

Since: gtk+ 2.10

### $tree\_view-\>set\_grid\_lines ($grid\_lines)

- •

  `$grid_lines` (Gtk2::TreeViewGridLines)

Since: gtk+ 2.10

### adjustment or undef = $tree\_view-\>get\_hadjustment

### $tree\_view-\>set\_hadjustment ($adjustment)

- •

  `$adjustment` (Gtk2::Adjustment or undef)

### boolean = $tree\_view-\>get\_headers\_clickable

Since: gtk+ 2.10

### $tree\_view-\>set\_headers\_clickable ($setting)

- •

  `$setting` (boolean)

### boolean = $tree\_view-\>get\_headers\_visible

### $tree\_view-\>set\_headers\_visible ($headers\_visible)

- •

  `$headers_visible` (boolean)

### boolean = $treeview-\>get\_hover\_expand

Since: gtk+ 2.6

### $treeview-\>set\_hover\_expand ($expand)

- •

  `$expand` (boolean)

Since: gtk+ 2.6

### boolean = $treeview-\>get\_hover\_selection

Since: gtk+ 2.6

### $treeview-\>set\_hover\_selection ($hover)

- •

  `$hover` (boolean)

Since: gtk+ 2.6

### integer = $tree\_view-\>insert\_column ($column, $position)

- •

  `$column` (Gtk2::TreeViewColumn)

- •

  `$position` (integer)

### $tree\_view-\>insert\_column\_with\_attributes ($position, $title, $cellrenderer, $attr1, $col1, $attr2, $col2, ...)

- •

  `$position` (integer)

- •

  `$title` (string)

- •

  `$cell` (Gtk2::CellRenderer)

- •

  ... (list)

### integer = $tree\_view-\>insert\_column\_with\_data\_func ($position, $title, $cell, $func, $data=undef)

- •

  `$position` (integer)

- •

  `$title` (string)

- •

  `$cell` (Gtk2::CellRenderer)

- •

  `$func` (subroutine)

- •

  `$data` (scalar)

Insert a column that calls *$func* every time it needs to fetch the data for a cell.  *$func* will get a cell renderer, the tree model, and the iter of the row in question, and should set the proper value into the cell renderer.

### boolean = $tree\_view-\>is\_rubber\_banding\_active

Since: gtk+ 2.12

### integer = $tree\_view-\>get\_level\_indentation

Since: gtk+ 2.12

### $tree\_view-\>set\_level\_indentation ($indentation)

- •

  `$indentation` (integer)

Since: gtk+ 2.12

### $tree\_view-\>map\_expanded\_rows ($func, $data=undef)

- •

  `$func` (scalar)

- •

  `$data` (scalar)

### treemodel or undef = $tree\_view-\>get\_model

### $tree\_view-\>set\_model ($model)

- •

  `$model` (Gtk2::TreeModel or undef)

### $tree\_view-\>move\_column\_after ($column, $base\_column)

- •

  `$column` (Gtk2::TreeViewColumn)

- •

  `$base_column` (Gtk2::TreeViewColumn or undef)

### path = $tree\_view-\>get\_path\_at\_pos ($x, $y)

### (path, column, cell\_x, cell\_y) = $tree\_view-\>get\_path\_at\_pos ($x, $y)

- •

  `$x` (integer)

- •

  `$y` (integer)

Finds the path at the point (*$x*, *$y*), relative to widget coordinates. That is, *$x* and *$y* are relative to an event's coordinates. *$x* and *$y* must come from an event on the *$tree\_view* only where `"$event->window == $tree_view->get_bin_window"`. It is primarily for things like popup menus.  In scalar context, returns the Gtk2::TreePath, in array context, adds the Gtk2::TreeViewColumn, and *$x* and *$y* translated to be relative to the cell.  This function is only meaningful if *$tree\_view* is realized.

### integer = $tree\_view-\>remove\_column ($column)

- •

  `$column` (Gtk2::TreeViewColumn)

### boolean = $tree\_view-\>get\_reorderable

### $tree\_view-\>set\_reorderable ($reorderable)

- •

  `$reorderable` (boolean)

### $tree\_view-\>row\_activated ($path, $column)

- •

  `$path` (Gtk2::TreePath)

- •

  `$column` (Gtk2::TreeViewColumn)

### boolean = $tree\_view-\>row\_expanded ($path)

- •

  `$path` (Gtk2::TreePath)

### $tree\_view-\>set\_row\_separator\_func ($func, $data=undef)

- •

  `$func` (scalar)

- •

  `$data` (scalar)

Since: gtk+ 2.6

### boolean = $tree\_view-\>get\_rubber\_banding

Since: gtk+ 2.10

### $tree\_view-\>set\_rubber\_banding ($enable)

- •

  `$enable` (boolean)

Since: gtk+ 2.10

### boolean = $tree\_view-\>get\_rules\_hint

### $tree\_view-\>set\_rules\_hint ($setting)

- •

  `$setting` (boolean)

### $tree\_view-\>scroll\_to\_cell ($path, $column=undef, $use\_align=FALSE, $row\_align=0.0, $col\_align=0.0)

- •

  `$path` (Gtk2::TreePath or undef)

- •

  `$column` (Gtk2::TreeViewColumn or undef)

- •

  `$use_align` (boolean)

- •

  `$row_align` (double)

- •

  `$col_align` (double)

### $tree\_view-\>scroll\_to\_point ($tree\_x, $tree\_y)

- •

  `$tree_x` (scalar)

- •

  `$tree_y` (scalar)

### integer = $tree\_view-\>get\_search\_column

### $tree\_view-\>set\_search\_column ($column)

- •

  `$column` (integer)

### entry or undef = $tree\_view-\>get\_search\_entry

Since: gtk+ 2.10

### $tree\_view-\>set\_search\_entry ($entry)

- •

  `$entry` (Gtk2::Entry or undef)

Since: gtk+ 2.10

### $tree\_view-\>set\_search\_equal\_func ($func, $data=undef)

- •

  `$func` (subroutine)

- •

  `$data` (scalar)

### $tree\_view-\>set\_search\_position\_func ($func, $user\_data=undef)

- •

  `$func` (scalar)

- •

  `$user_data` (scalar)

Pass undef for the *func* to restore the default search position function.

Since: gtk+ 2.10

### treeselection = $tree\_view-\>get\_selection

### boolean = $tree\_view-\>get\_show\_expanders

Since: gtk+ 2.12

### $tree\_view-\>set\_show\_expanders ($enabled)

- •

  `$enabled` (boolean)

Since: gtk+ 2.12

### $tree\_view-\>set\_tooltip\_cell ($tooltip, $path, $column, $cell)

- •

  `$tooltip` (Gtk2::Tooltip)

- •

  `$path` (Gtk2::TreePath)

- •

  `$column` (Gtk2::TreeViewColumn)

- •

  `$cell` (Gtk2::CellRenderer)

Since: gtk+ 2.12

### integer = $tree\_view-\>get\_tooltip\_column

Since: gtk+ 2.12

### $tree\_view-\>set\_tooltip\_column ($column)

- •

  `$column` (integer)

Since: gtk+ 2.12

### (x, y, model, path, iter) = $treeview-\>get\_tooltip\_context ($x, $y, $keyboard\_tip)

- •

  `$x` (integer)

- •

  `$y` (integer)

- •

  `$keyboard_tip` (boolean)

Since: gtk+ 2.12

### $tree\_view-\>set\_tooltip\_row ($tooltip, $path)

- •

  `$tooltip` (Gtk2::Tooltip)

- •

  `$path` (Gtk2::TreePath)

Since: gtk+ 2.12

### (wx, wy) = $tree\_view-\>tree\_to\_widget\_coords ($tx, $ty)

- •

  `$tx` (integer)

- •

  `$ty` (integer)

### $tree\_view-\>unset\_rows\_drag\_dest

### $tree\_view-\>unset\_rows\_drag\_source

### adjustment or undef = $tree\_view-\>get\_vadjustment

### $tree\_view-\>set\_vadjustment ($adjustment)

- •

  `$adjustment` (Gtk2::Adjustment or undef)

### (start\_path, end\_path) = $tree\_view-\>get\_visible\_range

Since: gtk+ 2.8

### rectangle = $tree\_view-\>get\_visible\_rect

### (tx, ty) = $tree\_view-\>widget\_to\_tree\_coords ($wx, $wy)

- •

  `$wx` (integer)

- •

  `$wy` (integer)

## PROPERTIES

- 'enable-grid-lines' (Gtk2::TreeViewGridLines : default "none" : readable / writable / private)

  Whether grid lines should be drawn in the tree view

- 'enable-search' (boolean : default true : readable / writable / private)

  View allows user to search through columns interactively

- 'enable-tree-lines' (boolean : default false : readable / writable / private)

  Whether tree lines should be drawn in the tree view

- 'expander-column' (Gtk2::TreeViewColumn : default undef : readable / writable / private)

  Set the column for the expander column

- 'fixed-height-mode' (boolean : default false : readable / writable / private)

  Speeds up GtkTreeView by assuming that all rows have the same height

- 'hadjustment' (Gtk2::Adjustment : default undef : readable / writable / private)

  Horizontal Adjustment for the widget

- 'headers-clickable' (boolean : default true : readable / writable / private)

  Column headers respond to click events

- 'headers-visible' (boolean : default true : readable / writable / private)

  Show the column header buttons

- 'hover-expand' (boolean : default false : readable / writable / private)

  Whether rows should be expanded/collapsed when the pointer moves over them

- 'hover-selection' (boolean : default false : readable / writable / private)

  Whether the selection should follow the pointer

- 'level-indentation' (integer : default 0 : readable / writable / private)

  Extra indentation for each level

- 'model' (Gtk2::TreeModel : default undef : readable / writable / private)

  The model for the tree view

- 'reorderable' (boolean : default false : readable / writable / private)

  View is reorderable

- 'rubber-banding' (boolean : default false : readable / writable / private)

  Whether to enable selection of multiple items by dragging the mouse pointer

- 'rules-hint' (boolean : default false : readable / writable / private)

  Set a hint to the theme engine to draw rows in alternating colors

- 'search-column' (integer : default -1 : readable / writable / private)

  Model column to search through during interactive search

- 'show-expanders' (boolean : default true : readable / writable / private)

  View has expanders

- 'tooltip-column' (integer : default -1 : readable / writable / private)

  The column in the model containing the tooltip texts for the rows

- 'vadjustment' (Gtk2::Adjustment : default undef : readable / writable / private)

  Vertical Adjustment for the widget

## STYLE PROPERTIES

- 'allow-rules' (boolean : default true : readable / private)

  Allow drawing of alternating color rows

- 'even-row-color' (Gtk2::Gdk::Color : default undef : readable / private)

  Color to use for even rows

- 'expander-size' (integer : default 12 : readable / private)

  Size of the expander arrow

- 'grid-line-pattern' (string : default "\\1\\1" : readable / private)

  Dash pattern used to draw the tree view grid lines

- 'grid-line-width' (integer : default 1 : readable / private)

  Width, in pixels, of the tree view grid lines

- 'horizontal-separator' (integer : default 2 : readable / private)

  Horizontal space between cells.  Must be an even number

- 'indent-expanders' (boolean : default true : readable / private)

  Make the expanders indented

- 'odd-row-color' (Gtk2::Gdk::Color : default undef : readable / private)

  Color to use for odd rows

- 'row-ending-details' (boolean : default false : readable / private)

  Enable extended row background theming

- 'tree-line-pattern' (string : default "\\1\\1" : readable / private)

  Dash pattern used to draw the tree view lines

- 'tree-line-width' (integer : default 1 : readable / private)

  Width, in pixels, of the tree view lines

- 'vertical-separator' (integer : default 2 : readable / private)

  Vertical space between cells.  Must be an even number

## SIGNALS

- **columns-changed** (Gtk2::TreeView)

  - **cursor-changed** (Gtk2::TreeView)

  - boolean = **expand-collapse-cursor-row** (Gtk2::TreeView, boolean, boolean, boolean)

  - boolean = **move-cursor** (Gtk2::TreeView, Gtk2::MovementStep, integer)

  - **row-activated** (Gtk2::TreeView, Gtk2::TreePath, Gtk2::TreeViewColumn)

  - **row-collapsed** (Gtk2::TreeView, Gtk2::TreeIter, Gtk2::TreePath)

  - **row-expanded** (Gtk2::TreeView, Gtk2::TreeIter, Gtk2::TreePath)

  - boolean = **select-all** (Gtk2::TreeView)

  - boolean = **select-cursor-parent** (Gtk2::TreeView)

  - boolean = **select-cursor-row** (Gtk2::TreeView, boolean)

  - **set-scroll-adjustments** (Gtk2::TreeView, Gtk2::Adjustment, Gtk2::Adjustment)

  - boolean = **start-interactive-search** (Gtk2::TreeView)

  - boolean = **test-collapse-row** (Gtk2::TreeView, Gtk2::TreeIter, Gtk2::TreePath)

  - boolean = **test-expand-row** (Gtk2::TreeView, Gtk2::TreeIter, Gtk2::TreePath)

  - boolean = **toggle-cursor-row** (Gtk2::TreeView)

  - boolean = **unselect-all** (Gtk2::TreeView)

  ## ENUMS AND FLAGS

### flags Gtk2::Gdk::DragAction

- •

  'default' / 'GDK\_ACTION\_DEFAULT'

- •

  'copy' / 'GDK\_ACTION\_COPY'

- •

  'move' / 'GDK\_ACTION\_MOVE'

- •

  'link' / 'GDK\_ACTION\_LINK'

- •

  'private' / 'GDK\_ACTION\_PRIVATE'

- •

  'ask' / 'GDK\_ACTION\_ASK'

### flags Gtk2::Gdk::ModifierType

- •

  'shift-mask' / 'GDK\_SHIFT\_MASK'

- •

  'lock-mask' / 'GDK\_LOCK\_MASK'

- •

  'control-mask' / 'GDK\_CONTROL\_MASK'

- •

  'mod1-mask' / 'GDK\_MOD1\_MASK'

- •

  'mod2-mask' / 'GDK\_MOD2\_MASK'

- •

  'mod3-mask' / 'GDK\_MOD3\_MASK'

- •

  'mod4-mask' / 'GDK\_MOD4\_MASK'

- •

  'mod5-mask' / 'GDK\_MOD5\_MASK'

- •

  'button1-mask' / 'GDK\_BUTTON1\_MASK'

- •

  'button2-mask' / 'GDK\_BUTTON2\_MASK'

- •

  'button3-mask' / 'GDK\_BUTTON3\_MASK'

- •

  'button4-mask' / 'GDK\_BUTTON4\_MASK'

- •

  'button5-mask' / 'GDK\_BUTTON5\_MASK'

- •

  'super-mask' / 'GDK\_SUPER\_MASK'

- •

  'hyper-mask' / 'GDK\_HYPER\_MASK'

- •

  'meta-mask' / 'GDK\_META\_MASK'

- •

  'release-mask' / 'GDK\_RELEASE\_MASK'

- •

  'modifier-mask' / 'GDK\_MODIFIER\_MASK'

### enum Gtk2::MovementStep

- •

  'logical-positions' / 'GTK\_MOVEMENT\_LOGICAL\_POSITIONS'

- •

  'visual-positions' / 'GTK\_MOVEMENT\_VISUAL\_POSITIONS'

- •

  'words' / 'GTK\_MOVEMENT\_WORDS'

- •

  'display-lines' / 'GTK\_MOVEMENT\_DISPLAY\_LINES'

- •

  'display-line-ends' / 'GTK\_MOVEMENT\_DISPLAY\_LINE\_ENDS'

- •

  'paragraphs' / 'GTK\_MOVEMENT\_PARAGRAPHS'

- •

  'paragraph-ends' / 'GTK\_MOVEMENT\_PARAGRAPH\_ENDS'

- •

  'pages' / 'GTK\_MOVEMENT\_PAGES'

- •

  'buffer-ends' / 'GTK\_MOVEMENT\_BUFFER\_ENDS'

- •

  'horizontal-pages' / 'GTK\_MOVEMENT\_HORIZONTAL\_PAGES'

### enum Gtk2::TreeViewDropPosition

- •

  'before' / 'GTK\_TREE\_VIEW\_DROP\_BEFORE'

- •

  'after' / 'GTK\_TREE\_VIEW\_DROP\_AFTER'

- •

  'into-or-before' / 'GTK\_TREE\_VIEW\_DROP\_INTO\_OR\_BEFORE'

- •

  'into-or-after' / 'GTK\_TREE\_VIEW\_DROP\_INTO\_OR\_AFTER'

### enum Gtk2::TreeViewGridLines

- •

  'none' / 'GTK\_TREE\_VIEW\_GRID\_LINES\_NONE'

- •

  'horizontal' / 'GTK\_TREE\_VIEW\_GRID\_LINES\_HORIZONTAL'

- •

  'vertical' / 'GTK\_TREE\_VIEW\_GRID\_LINES\_VERTICAL'

- •

  'both' / 'GTK\_TREE\_VIEW\_GRID\_LINES\_BOTH'

## SEE ALSO

Gtk2, Glib::Object, Glib::InitiallyUnowned, Gtk2::Object, Gtk2::Widget, Gtk2::Container

## COPYRIGHT

Copyright (C) 2003-2011 by the gtk2-perl team.

This software is licensed under the LGPL.  See Gtk2 for a full notice.
