Gtk2::TreeView(3)
β¨ NAME β¨
okay bestie, this is Gtk2::TreeView(3) from the User Contributed Perl Documentation. It's a wrapper for GtkTreeView, and it's giving tree widget main character energy. π
π³
πΈ HIERARCHY πΈ
Glib::Object
+----Glib::InitiallyUnowned
+----Gtk2::Object
+----Gtk2::Widget
+----Gtk2::Container
+----Gtk2::TreeView
π¦ INTERFACES π¦
Glib::Object::_Unregistered::AtkImplementorIfaceGtk2::Buildable
π METHODS π
okay bestie, here's the whole method menu. Every signature and every arg type is kept exactly as the original says, no cap. π«Ά
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) ofGtk2::TargetEntry's
$tree_view->enable_model_drag_source ($start_button_mask, $actions, ...)
$start_button_mask(Gtk2::Gdk::ModifierType)$actions(Gtk2::Gdk::DragAction)...(list) ofGtk2::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 π
okay bestie these are the object properties, the little knobs you can turn. every single one of these is readable / writable / private / static-nick / static-blurb unless I say otherwise, and im saying it every time bc I refuse to skip anything, periodt π
enable-grid-lines(Gtk2::TreeViewGridLines, default"none", readable / writable / private / static-nick / static-blurb) β whether grid lines should be drawn in the tree view π¦enable-search(boolean, defaulttrue, readable / writable / private / static-nick / static-blurb) β view lets the user search through columns interactively β¨enable-tree-lines(boolean, defaultfalse, readable / writable / private / static-nick / static-blurb) β whether tree lines should be drawn in the tree view πΈexpander-column(Gtk2::TreeViewColumn, defaultundef, readable / writable / private / static-nick / static-blurb) β set the column for the expander columnfixed-height-mode(boolean, defaultfalse, readable / writable / private / static-nick / static-blurb) β speeds upGtkTreeViewby assuming that all rows have the same height π₯hadjustment(Gtk2::Adjustment, defaultundef, readable / writable / private / static-nick / static-blurb) β horizontal Adjustment for the widgetheaders-clickable(boolean, defaulttrue, readable / writable / private / static-nick / static-blurb) β column headers respond to click events πheaders-visible(boolean, defaulttrue, readable / writable / private / static-nick / static-blurb) β show the column header buttonshover-expand(boolean, defaultfalse, readable / writable / private / static-nick / static-blurb) β whether rows should be expanded/collapsed when the pointer moves over them π§hover-selection(boolean, defaultfalse, readable / writable / private / static-nick / static-blurb) β whether the selection should follow the pointerlevel-indentation(integer, default0, readable / writable / private / static-nick / static-blurb) β extra indentation for each levelmodel(Gtk2::TreeModel, defaultundef, readable / writable / private / static-nick / static-blurb) β the model for the tree view, the actual main character here fr fr πreorderable(boolean, defaultfalse, readable / writable / private / static-nick / static-blurb) β view is reorderablerubber-banding(boolean, defaultfalse, readable / writable / private / static-nick / static-blurb) β whether to enable selection of multiple items by dragging the mouse pointer π«Άrules-hint(boolean, defaultfalse, readable / writable / private / static-nick / static-blurb) β set a hint to the theme engine to draw rows in alternating colorssearch-column(integer, default-1, readable / writable / private / static-nick / static-blurb) β model column to search through during interactive searchshow-expanders(boolean, defaulttrue, readable / writable / private / static-nick / static-blurb) β view has expanderstooltip-column(integer, default-1, readable / writable / private / static-nick / static-blurb) β the column in the model containing the tooltip texts for the rowsvadjustment(Gtk2::Adjustment, defaultundef, readable / writable / private / static-nick / static-blurb) β vertical Adjustment for the widget
π STYLE PROPERTIES π
these ones are a little different bestie β notice they're readable / private / static-nick / static-blurb, no writable in the mix, okay? they're the theme's vibe, not yours to just yank around π
allow-rules(boolean, defaulttrue, readable / private / static-nick / static-blurb) β allow drawing of alternating color rows πeven-row-color(Gtk2::Gdk::Color, defaultundef, readable / private / static-nick / static-blurb) β color to use for even rowsexpander-size(integer, default12, readable / private / static-nick / static-blurb) β size of the expander arrowgrid-line-pattern(string, default"\1\1", readable / private / static-nick / static-blurb) β dash pattern used to draw the tree view grid linesgrid-line-width(integer, default1, readable / private / static-nick / static-blurb) β width, in pixels, of the tree view grid lineshorizontal-separator(integer, default2, readable / private / static-nick / static-blurb) β horizontal space between cells. must be an even number β οΈindent-expanders(boolean, defaulttrue, readable / private / static-nick / static-blurb) β make the expanders indentedodd-row-color(Gtk2::Gdk::Color, defaultundef, readable / private / static-nick / static-blurb) β color to use for odd rowsrow-ending-details(boolean, defaultfalse, readable / private / static-nick / static-blurb) β enable extended row background theming β¨tree-line-pattern(string, default"\1\1", readable / private / static-nick / static-blurb) β dash pattern used to draw the tree view linestree-line-width(integer, default1, readable / private / static-nick / static-blurb) β width, in pixels, of the tree view linesvertical-separator(integer, default2, readable / private / static-nick / static-blurb) β vertical space between cells. must be an even number β οΈ
π₯ SIGNALS π₯
the tree view is chatty and honestly? we love that for it. here's every signal it emits, signatures and all, no cuts π
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 π¦
like, go read these next bestie, they're the friend group:
Gtk2Glib::ObjectGlib::InitiallyUnownedGtk2::ObjectGtk2::WidgetGtk2::Container
π COPYRIGHT π
Copyright (C) 2003-2011 by the gtk2-perl team.
This software is licensed under the LGPL. See Gtk2 for a full notice.
and that's the whole page, you ate that π
this was perl v5.42.0, dated 2025-07-25, and it's Gtk2::TreeView(3) β go forth and build something iconic, ily, bye π«Άβ¨
π¦ where this page comes from
- fedora 43: perl-Gtk2 1.24993-23.fc43 Β· LicenseRef-Callaway-LGPLv2+
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms