Gtk.IconView¶
class — extends Widget, Accessible, Buildable, CellLayout, ConstraintTarget, Scrollable
:::warning Deprecated since 4.10 This API is deprecated. :::
GtkIconView is a widget which displays data in a grid of icons.
<picture> <source srcset="icon-view-dark.png" media="(prefers-color-scheme: dark)"> <img alt="An example GtkIconView" src="icon-view.png"> </picture>
GtkIconView provides an alternative view on a GtkTreeModel.
It displays the model as a grid of icons with labels. Like
TreeView, it allows to select one or multiple items
(depending on the selection mode, see IconView.set_selection_mode).
In addition to selection with the arrow keys, GtkIconView supports
rubberband selection, which is controlled by dragging the pointer.
Note that if the tree model is backed by an actual tree store (as
opposed to a flat list where the mapping to icons is obvious),
GtkIconView will only display the first level of the tree and
ignore the tree’s branches.
CSS nodes¶
GtkIconView has a single CSS node with name iconview and style class .view.
For rubberband selection, a subnode with name rubberband is used.
Constructors¶
new¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Creates a new GtkIconView widget
new_with_area¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Creates a new GtkIconView widget using the
specified area to layout cells inside the icons.
Parameters:
area— theGtkCellAreato use to layout cells
new_with_model¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Creates a new GtkIconView widget with the model model.
Parameters:
model— The model.
Methods¶
create_drag_icon¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Creates a GdkPaintable representation of the item at path.
This image is used for a drag icon.
Parameters:
path— aGtkTreePathinicon_view
enable_model_drag_dest¶
def enable_model_drag_dest(self, formats: Gdk.ContentFormats, actions: Gdk.DragAction | int) -> None
:::warning Deprecated since 4.10 This API is deprecated. :::
Turns icon_view into a drop destination for automatic DND. Calling this
method sets GtkIconView:reorderable to False.
Parameters:
formats— the formats that the drag will supportactions— the bitmask of possible actions for a drag to this widget
enable_model_drag_source¶
def enable_model_drag_source(self, start_button_mask: Gdk.ModifierType | int, formats: Gdk.ContentFormats, actions: Gdk.DragAction | int) -> None
:::warning Deprecated since 4.10 This API is deprecated. :::
Turns icon_view into a drag source for automatic DND. Calling this
method sets GtkIconView:reorderable to False.
Parameters:
start_button_mask— Mask of allowed buttons to start dragformats— the formats that the drag will supportactions— the bitmask of possible actions for a drag from this widget
get_activate_on_single_click¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Gets the setting set by IconView.set_activate_on_single_click.
get_cell_rect¶
def get_cell_rect(self, path: TreePath, cell: CellRenderer | None = ...) -> tuple[bool, Gdk.Rectangle]
:::warning Deprecated since 4.10 This API is deprecated. :::
Fills the bounding rectangle in widget coordinates for the cell specified by
path and cell. If cell is None the main cell area is used.
This function is only valid if icon_view is realized.
Parameters:
path— aGtkTreePathcell— aGtkCellRenderer
get_column_spacing¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the value of the ::column-spacing property.
get_columns¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the value of the ::columns property.
get_cursor¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Fills in path and cell with the current cursor path and cell.
If the cursor isn’t currently set, then path will be None.
If no cell currently has focus, then cell will be None.
The returned GtkTreePath must be freed with TreePath.free.
get_dest_item_at_pos¶
def get_dest_item_at_pos(self, drag_x: int, drag_y: int) -> tuple[bool, TreePath, IconViewDropPosition | int]
:::warning Deprecated since 4.10 This API is deprecated. :::
Determines the destination item for a given position.
Parameters:
drag_x— the position to determine the destination item fordrag_y— the position to determine the destination item for
get_drag_dest_item¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Gets information about the item that is highlighted for feedback.
get_item_at_pos¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Gets the path and cell for the icon at the given position.
Parameters:
x— The x position to be identifiedy— The y position to be identified
get_item_column¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Gets the column in which the item path is currently
displayed. Column numbers start at 0.
Parameters:
path— theGtkTreePathof the item
get_item_orientation¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the value of the ::item-orientation property which determines whether the labels are drawn beside the icons instead of below.
get_item_padding¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the value of the ::item-padding property.
get_item_row¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Gets the row in which the item path is currently
displayed. Row numbers start at 0.
Parameters:
path— theGtkTreePathof the item
get_item_width¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the value of the ::item-width property.
get_margin¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the value of the ::margin property.
get_markup_column¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the column with markup text for icon_view.
get_model¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the model the GtkIconView is based on. Returns None if the
model is unset.
get_path_at_pos¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Gets the path for the icon at the given position.
Parameters:
x— The x position to be identifiedy— The y position to be identified
get_pixbuf_column¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the column with pixbufs for icon_view.
get_reorderable¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Retrieves whether the user can reorder the list via drag-and-drop.
See IconView.set_reorderable.
get_row_spacing¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the value of the ::row-spacing property.
get_selected_items¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Creates a list of paths of all selected items. Additionally, if you are
planning on modifying the model after calling this function, you may
want to convert the returned list into a list of GtkTreeRowReferences.
To do this, you can use TreeRowReference.new.
To free the return value, use g_list_free_full:
GtkWidget *icon_view = gtk_icon_view_new ();
// Use icon_view
GList *list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (icon_view));
// use list
g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free);
get_selection_mode¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Gets the selection mode of the icon_view.
get_spacing¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the value of the ::spacing property.
get_text_column¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the column with text for icon_view.
get_tooltip_column¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns the column of icon_view’s model which is being used for
displaying tooltips on icon_view’s rows.
get_tooltip_context¶
def get_tooltip_context(self, x: int, y: int, keyboard_tip: bool) -> tuple[bool, TreeModel, TreePath, TreeIter]
:::warning Deprecated since 4.10 This API is deprecated. :::
This function is supposed to be used in a GtkWidget::query-tooltip
signal handler for GtkIconView. The x, y and keyboard_tip values
which are received in the signal handler, should be passed to this
function without modification.
The return value indicates whether there is an icon view item at the given
coordinates (True) or not (False) for mouse tooltips. For keyboard
tooltips the item returned will be the cursor item. When True, then any of
model, path and iter which have been provided will be set to point to
that row and the corresponding model.
Parameters:
x— the x coordinate (relative to widget coordinates)y— the y coordinate (relative to widget coordinates)keyboard_tip— whether this is a keyboard tooltip or not
get_visible_range¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets start_path and end_path to be the first and last visible path.
Note that there may be invisible paths in between.
Both paths should be freed with TreePath.free after use.
item_activated¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Activates the item determined by path.
Parameters:
path— TheGtkTreePathto be activated
path_is_selected¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Returns True if the icon pointed to by path is currently
selected. If path does not point to a valid location, False is returned.
Parameters:
path— AGtkTreePathto check selection on.
scroll_to_path¶
def scroll_to_path(self, path: TreePath, use_align: bool, row_align: float, col_align: float) -> None
:::warning Deprecated since 4.10 This API is deprecated. :::
Moves the alignments of icon_view to the position specified by path.
row_align determines where the row is placed, and col_align determines
where column is placed. Both are expected to be between 0.0 and 1.0.
0.0 means left/top alignment, 1.0 means right/bottom alignment, 0.5 means
center.
If use_align is False, then the alignment arguments are ignored, and the
tree does the minimum amount of work to scroll the item onto the screen.
This means that the item will be scrolled to the edge closest to its current
position. If the item is currently visible on the screen, nothing is done.
This function only works if the model is set, and path is a valid row on
the model. If the model changes before the icon_view is realized, the
centered path will be modified to reflect this change.
Parameters:
path— The path of the item to move to.use_align— whether to use alignment arguments, orFalse.row_align— The vertical alignment of the item specified bypath.col_align— The horizontal alignment of the item specified bypath.
select_all¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Selects all the icons. icon_view must has its selection mode set
to SelectionMode.MULTIPLE.
select_path¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Selects the row at path.
Parameters:
path— TheGtkTreePathto be selected.
selected_foreach¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Calls a function for each selected icon. Note that the model or selection cannot be modified from within this function.
Parameters:
func— The function to call for each selected icon.
set_activate_on_single_click¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Causes the GtkIconView::item-activated signal to be emitted on
a single click instead of a double click.
Parameters:
single—Trueto emit item-activated on a single click
set_column_spacing¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the ::column-spacing property which specifies the space which is inserted between the columns of the icon view.
Parameters:
column_spacing— the column spacing
set_columns¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the ::columns property which determines in how
many columns the icons are arranged. If columns is
-1, the number of columns will be chosen automatically
to fill the available area.
Parameters:
columns— the number of columns
set_cursor¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the current keyboard focus to be at path, and selects it. This is
useful when you want to focus the user’s attention on a particular item.
If cell is not None, then focus is given to the cell specified by
it. Additionally, if start_editing is True, then editing should be
started in the specified cell.
This function is often followed by [Widget.grab_focus](./Widget.md#method-grab_focus)
(icon_view) in order to give keyboard focus to the widget.
Please note that editing can only happen when the widget is realized.
Parameters:
path— AGtkTreePathcell— One of the cell renderers oficon_viewstart_editing—Trueif the specified cell should start being edited.
set_drag_dest_item¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the item that is highlighted for feedback.
Parameters:
path— The path of the item to highlightpos— Specifies where to drop, relative to the item
set_item_orientation¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the ::item-orientation property which determines whether the labels are drawn beside the icons instead of below.
Parameters:
orientation— the relative position of texts and icons
set_item_padding¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the GtkIconView:item-padding property which specifies the padding
around each of the icon view’s items.
Parameters:
item_padding— the item padding
set_item_width¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the ::item-width property which specifies the width to use for each item. If it is set to -1, the icon view will automatically determine a suitable item size.
Parameters:
item_width— the width for each item
set_margin¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the ::margin property which specifies the space which is inserted at the top, bottom, left and right of the icon view.
Parameters:
margin— the margin
set_markup_column¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the column with markup information for icon_view to be
column. The markup column must be of type G_TYPE_STRING.
If the markup column is set to something, it overrides
the text column set by IconView.set_text_column.
Parameters:
column— A column in the currently used model, or -1 to display no text
set_model¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the model for a GtkIconView.
If the icon_view already has a model set, it will remove
it before setting the new model. If model is None, then
it will unset the old model.
Parameters:
model— The model.
set_pixbuf_column¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the column with pixbufs for icon_view to be column. The pixbuf
column must be of type GDK_TYPE_PIXBUF
Parameters:
column— A column in the currently used model, or -1 to disable
set_reorderable¶
:::warning Deprecated since 4.10 This API is deprecated. :::
This function is a convenience function to allow you to reorder models that
support the GtkTreeDragSourceIface and the GtkTreeDragDestIface. Both
GtkTreeStore and GtkListStore support these. If reorderable is True, then
the user can reorder the model by dragging and dropping rows. The
developer can listen to these changes by connecting to the model's
row_inserted and row_deleted signals. The reordering is implemented by setting up
the icon view as a drag source and destination. Therefore, drag and
drop can not be used in a reorderable view for any other purpose.
This function does not give you any degree of control over the order -- any reordering is allowed. If more control is needed, you should probably handle drag and drop manually.
Parameters:
reorderable—True, if the list of items can be reordered.
set_row_spacing¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the ::row-spacing property which specifies the space which is inserted between the rows of the icon view.
Parameters:
row_spacing— the row spacing
set_selection_mode¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the selection mode of the icon_view.
Parameters:
mode— The selection mode
set_spacing¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the ::spacing property which specifies the space which is inserted between the cells (i.e. the icon and the text) of an item.
Parameters:
spacing— the spacing
set_text_column¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the column with text for icon_view to be column. The text
column must be of type G_TYPE_STRING.
Parameters:
column— A column in the currently used model, or -1 to display no text
set_tooltip_cell¶
def set_tooltip_cell(self, tooltip: Tooltip, path: TreePath, cell: CellRenderer | None = ...) -> None
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the tip area of tooltip to the area which cell occupies in
the item pointed to by path. See also Tooltip.set_tip_area.
See also IconView.set_tooltip_column for a simpler alternative.
Parameters:
tooltip— aGtkTooltippath— aGtkTreePathcell— aGtkCellRenderer
set_tooltip_column¶
:::warning Deprecated since 4.10 This API is deprecated. :::
If you only plan to have simple (text-only) tooltips on full items, you
can use this function to have GtkIconView handle these automatically
for you. column should be set to the column in icon_view’s model
containing the tooltip texts, or -1 to disable this feature.
When enabled, GtkWidget:has-tooltip will be set to True and
icon_view will connect a GtkWidget::query-tooltip signal handler.
Note that the signal handler sets the text with Tooltip.set_markup,
so &, <, etc have to be escaped in the text.
Parameters:
column— an integer, which is a valid column number foricon_view’s model
set_tooltip_item¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Sets the tip area of tooltip to be the area covered by the item at path.
See also IconView.set_tooltip_column for a simpler alternative.
See also Tooltip.set_tip_area.
Parameters:
tooltip— aGtkTooltippath— aGtkTreePath
unselect_all¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Unselects all the icons.
unselect_path¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Unselects the row at path.
Parameters:
path— TheGtkTreePathto be unselected.
unset_model_drag_dest¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Undoes the effect of IconView.enable_model_drag_dest. Calling this
method sets GtkIconView:reorderable to False.
unset_model_drag_source¶
:::warning Deprecated since 4.10 This API is deprecated. :::
Undoes the effect of IconView.enable_model_drag_source. Calling this
method sets GtkIconView:reorderable to False.
Properties¶
activate_on_single_click¶
The activate-on-single-click property specifies whether the "item-activated" signal will be emitted after a single click.
cell_area¶
The GtkCellArea used to layout cell renderers for this view.
If no area is specified when creating the icon view with IconView.new_with_area
a GtkCellAreaBox will be used.
column_spacing¶
The column-spacing property specifies the space which is inserted between the columns of the icon view.
columns¶
The columns property contains the number of the columns in which the items should be displayed. If it is -1, the number of columns will be chosen automatically to fill the available area.
item_orientation¶
The item-orientation property specifies how the cells (i.e. the icon and the text) of the item are positioned relative to each other.
item_padding¶
The item-padding property specifies the padding around each of the icon view's item.
item_width¶
The item-width property specifies the width to use for each item. If it is set to -1, the icon view will automatically determine a suitable item size.
margin¶
The margin property specifies the space which is inserted at the edges of the icon view.
markup_column¶
The ::markup-column property contains the number of the model column
containing markup information to be displayed. The markup column must be
of type G_TYPE_STRING. If this property and the :text-column property
are both set to column numbers, it overrides the text column.
If both are set to -1, no texts are displayed.
model¶
The model of the icon view.
pixbuf_column¶
The ::pixbuf-column property contains the number of the model column
containing the pixbufs which are displayed. The pixbuf column must be
of type GDK_TYPE_PIXBUF. Setting this property to -1 turns off the
display of pixbufs.
reorderable¶
The reorderable property specifies if the items can be reordered by DND.
row_spacing¶
The row-spacing property specifies the space which is inserted between the rows of the icon view.
selection_mode¶
The ::selection-mode property specifies the selection mode of
icon view. If the mode is SelectionMode.MULTIPLE, rubberband selection
is enabled, for the other modes, only keyboard selection is possible.
spacing¶
The spacing property specifies the space which is inserted between the cells (i.e. the icon and the text) of an item.
text_column¶
The ::text-column property contains the number of the model column
containing the texts which are displayed. The text column must be
of type G_TYPE_STRING. If this property and the :markup-column
property are both set to -1, no texts are displayed.
tooltip_column¶
The column of the icon view model which is being used for displaying tooltips on it's rows.
Signals¶
activate-cursor-item¶
A [keybinding signal]SignalAction
which gets emitted when the user activates the currently
focused item.
Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control activation programmatically.
The default bindings for this signal are Space, Return and Enter.
item-activated¶
The ::item-activated signal is emitted when the method
IconView.item_activated is called, when the user double
clicks an item with the "activate-on-single-click" property set
to False, or when the user single clicks an item when the
"activate-on-single-click" property set to True. It is also
emitted when a non-editable item is selected and one of the keys:
Space, Return or Enter is pressed.
move-cursor¶
The ::move-cursor signal is a
[keybinding signal]SignalAction
which gets emitted when the user initiates a cursor movement.
Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control the cursor programmatically.
The default bindings for this signal include - Arrow keys which move by individual steps - Home/End keys which move to the first/last item - PageUp/PageDown which move by "pages" All of these will extend the selection when combined with the Shift modifier.
select-all¶
A [keybinding signal]SignalAction
which gets emitted when the user selects all items.
Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control selection programmatically.
The default binding for this signal is Ctrl-a.
select-cursor-item¶
A [keybinding signal]SignalAction
which gets emitted when the user selects the item that is currently
focused.
Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control selection programmatically.
There is no default binding for this signal.
selection-changed¶
The ::selection-changed signal is emitted when the selection (i.e. the set of selected items) changes.
toggle-cursor-item¶
A [keybinding signal]SignalAction
which gets emitted when the user toggles whether the currently
focused item is selected or not. The exact effect of this
depend on the selection mode.
Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control selection programmatically.
There is no default binding for this signal is Ctrl-Space.
unselect-all¶
A [keybinding signal]SignalAction
which gets emitted when the user unselects all items.
Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control selection programmatically.
The default binding for this signal is Ctrl-Shift-a.