Struct gtk4::ColumnView [−][src]
pub struct ColumnView(_);
Expand description
ColumnView
presents a large dynamic list of items using multiple columns
with headers.
ColumnView
uses the factories of its columns to generate a cell widget for
each column, for each visible item and displays them together as the row for
this item.
The property::ColumnView::show-row-separators
and
property::ColumnView::show-column-separators
properties offer a simple way
to display separators between the rows or columns.
ColumnView
allows the user to select items according to the selection
characteristics of the model. For models that allow multiple selected items,
it is possible to turn on rubberband selection, using
property::ColumnView::enable-rubberband
.
The column view supports sorting that can be customized by the user by
clicking on column headers. To set this up, the Sorter
returned by
sorter()
must be attached to a sort model for the
data that the view is showing, and the columns must have sorters attached to
them by calling ColumnViewColumn::set_sorter()
. The initial sort
order can be set with sort_by_column()
.
The column view also supports interactive resizing and reordering of
columns, via Drag-and-Drop of the column headers. This can be enabled or
disabled with the property::ColumnView::reorderable
and
property::ColumnViewColumn::resizable
properties.
To learn more about the list widget framework, see the overview.
CSS nodes
columnview[.column-separators][.rich-list][.navigation-sidebar][.data-table]
├── header
│ ├── <column header>
┊ ┊
│ ╰── <column header>
│
├── listview
│
┊
╰── [rubberband]
ColumnView
uses a single CSS node named columnview. It may carry the
.column-separators style class, when property::ColumnView::show-column-separators
property is set. Header widgets appear below a node with name header.
The rows are contained in a ListView
widget, so there is a listview
node with the same structure as for a standalone ListView
widget.
If property::ColumnView::show-row-separators
is set, it will be passed
on to the list view, causing its CSS node to carry the .separators style class.
For rubberband selection, a node with name rubberband is used.
The main columnview node may also carry style classes to select the style of list presentation: .rich-list, .navigation-sidebar or .data-table.
Accessibility
ColumnView
uses the AccessibleRole::TreeGrid
role, header title
widgets are using the AccessibleRole::ColumnHeader
role. The row widgets
are using the AccessibleRole::Row
role, and individual cells are using
the AccessibleRole::GridCell
role
Implements
WidgetExt
, glib::ObjectExt
, AccessibleExt
, BuildableExt
, ConstraintTargetExt
, ScrollableExt
, WidgetExtManual
, AccessibleExtManual
Implementations
Creates a new ColumnView
.
You most likely want to call append_column()
to add columns next.
model
the list model to use
Returns
a new ColumnView
Creates a new builder-pattern struct instance to construct ColumnView
objects.
This method returns an instance of ColumnViewBuilder
which can be used to create ColumnView
objects.
Appends the column
to the end of the columns in self
.
column
a ColumnViewColumn
that hasn’t been added to a
ColumnView
yet
Gets the list of columns in this column view.
This list is constant over the lifetime of self
and can be used to
monitor changes to the columns of self
by connecting to the
::items-changed signal.
Returns
The list managing the columns
Returns a special sorter that reflects the users sorting choices in the column view.
To allow users to customizable sorting by clicking on column headers, this sorter needs to be set on the sort model underneath the model that is displayed by the view.
See ColumnViewColumn::set_sorter()
for setting up
per-column sorting.
Here is an example: ⚠️ The following code is in c ⚠️
gtk_column_view_column_set_sorter (column, sorter);
gtk_column_view_append_column (view, column);
sorter = g_object_ref (gtk_column_view_get_sorter (view)));
model = gtk_sort_list_model_new (store, sorter);
selection = gtk_no_selection_new (model);
gtk_column_view_set_model (view, selection);
Returns
the Sorter
of self
Inserts a column at the given position in the columns of self
.
If column
is already a column of self
, it will be repositioned.
position
the position to insert column
at
column
the ColumnViewColumn
to insert
Sets whether selections can be changed by dragging with the mouse.
enable_rubberband
true
to enable rubberband selection
Sets whether columns should be reorderable by dragging.
reorderable
whether columns should be reorderable
Sets whether the list should show separators between columns.
show_column_separators
true
to show column separators
Sets whether the list should show separators between rows.
show_row_separators
true
to show row separators
Sets whether rows should be activated on single click and selected on hover.
single_click_activate
true
to activate items on single click
Sets the sorting of the view.
This function should be used to set up the initial sorting. At runtime, users can change the sorting of a column view by clicking on the list headers.
This call only has an effect if the sorter returned by
sorter()
is set on a sort model,
and ColumnViewColumn::set_sorter()
has been called
on column
to associate a sorter with the column.
If column
is None
, the view will be unsorted.
column
the ColumnViewColumn
to sort by
direction
the direction to sort in
Emitted when a row has been activated by the user, usually via activating the GtkListBase|list.activate-item action.
This allows for a convenient way to handle activation in a columnview.
See ListItem::set_activatable()
for details on how to use this
signal.
position
position of item to activate
pub fn connect_enable_rubberband_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_show_column_separators_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_show_row_separators_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_single_click_activate_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Returns the type identifier of Self
.
Auto Trait Implementations
impl RefUnwindSafe for ColumnView
impl !Send for ColumnView
impl !Sync for ColumnView
impl Unpin for ColumnView
impl UnwindSafe for ColumnView
Blanket Implementations
Mutably borrows from an owned value. Read more
Upcasts an object to a superclass or interface T
. Read more
Upcasts an object to a reference of its superclass or interface T
. Read more
Tries to downcast to a subclass or interface implementor T
. Read more
Tries to downcast to a reference of its subclass or interface implementor T
. Read more
Tries to cast to an object of type T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read more
Tries to cast to reference to an object of type T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read more
Casts to T
unconditionally. Read more
Casts to &T
unconditionally. Read more
Returns true
if the object is an instance of (can be cast to) T
.
pub fn set_property<'a, N, V>(
&self,
property_name: N,
value: V
) -> Result<(), BoolError> where
N: Into<&'a str>,
V: ToValue,
pub fn set_property_from_value<'a, N>(
&self,
property_name: N,
value: &Value
) -> Result<(), BoolError> where
N: Into<&'a str>,
pub fn set_properties_from_value(
&self,
property_values: &[(&str, Value)]
) -> Result<(), BoolError>
pub fn has_property<'a, N>(&self, property_name: N, type_: Option<Type>) -> bool where
N: Into<&'a str>,
pub fn find_property<'a, N>(&self, property_name: N) -> Option<ParamSpec> where
N: Into<&'a str>,
Safety Read more
Safety Read more
Safety Read more
Safety Read more
pub fn connect<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
N: Into<&'a str>,
F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
Same as connect
but takes a SignalId
instead of a signal name.
pub fn connect_local<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
N: Into<&'a str>,
F: 'static + Fn(&[Value]) -> Option<Value>,
Same as connect_local
but takes a SignalId
instead of a signal name.
pub unsafe fn connect_unsafe<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
N: Into<&'a str>,
F: Fn(&[Value]) -> Option<Value>,
Same as connect_unsafe
but takes a SignalId
instead of a signal name.
Emit signal by signal id.
Same as emit
but takes Value
for the arguments.
Emit signal by its name.
Same as emit_by_name
but takes Value
for the arguments.
Emit signal with details by signal id.
Same as emit_with_details
but takes Value
for the arguments.
pub fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
pub fn connect_notify_local<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec),
pub unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: Fn(&T, &ParamSpec),
pub fn bind_property<'a, O, N, M>(
&'a self,
source_property: N,
target: &'a O,
target_property: M
) -> BindingBuilder<'a> where
O: ObjectType,
N: Into<&'a str>,
M: Into<&'a str>,
Returns a SendValue
clone of self
.