Struct gtk4::TreeStore [−][src]
pub struct TreeStore(_);
Expand description
A tree-like data structure that can be used with the GtkTreeView
The TreeStore
object is a list model for use with a TreeView
widget. It implements the TreeModel
interface, and consequently,
can use all of the methods available there. It also implements the
TreeSortable
interface so it can be sorted by the view. Finally,
it also implements the tree
[drag and drop][gtk3-GtkTreeView-drag-and-drop]
interfaces.
GtkTreeStore as GtkBuildable
The GtkTreeStore implementation of the Buildable
interface allows
to specify the model columns with a <columns>
element that may contain
multiple <column>
elements, each specifying one model column. The “type”
attribute specifies the data type for the column.
An example of a UI Definition fragment for a tree store:
<object class="GtkTreeStore">
<columns>
<column type="gchararray"/>
<column type="gchararray"/>
<column type="gint"/>
</columns>
</object>
Implements
glib::ObjectExt
, BuildableExt
, TreeDragDestExt
, TreeDragSourceExt
, TreeModelExt
, TreeSortableExt
, TreeModelExtManual
, TreeSortableExtManual
Implementations
Appends a new row to self
. If parent
is non-None
, then it will append the
new row after the last child of parent
, otherwise it will append a row to
the top level. iter
will be changed to point to this new row. The row will
be empty after this function is called. To fill in values, you need to call
set()
or set_value()
.
parent
A valid TreeIter
Returns
iter
An unset TreeIter
to set to the appended row
Creates a new row at position
. If parent is non-None
, then the row will be
made a child of parent
. Otherwise, the row will be created at the toplevel.
If position
is -1 or is larger than the number of rows at that level, then
the new row will be inserted to the end of the list. iter
will be changed
to point to this new row. The row will be empty after this function is
called. To fill in values, you need to call set()
or
set_value()
.
parent
A valid TreeIter
position
position to insert the new row, or -1 for last
Returns
iter
An unset TreeIter
to set to the new row
Inserts a new row after sibling
. If sibling
is None
, then the row will be
prepended to parent
’s children. If parent
and sibling
are None
, then
the row will be prepended to the toplevel. If both sibling
and parent
are
set, then parent
must be the parent of sibling
. When sibling
is set,
parent
is optional.
iter
will be changed to point to this new row. The row will be empty after
this function is called. To fill in values, you need to call
set()
or set_value()
.
parent
A valid TreeIter
sibling
A valid TreeIter
Returns
iter
An unset TreeIter
to set to the new row
Inserts a new row before sibling
. If sibling
is None
, then the row will
be appended to parent
’s children. If parent
and sibling
are None
, then
the row will be appended to the toplevel. If both sibling
and parent
are
set, then parent
must be the parent of sibling
. When sibling
is set,
parent
is optional.
iter
will be changed to point to this new row. The row will be empty after
this function is called. To fill in values, you need to call
set()
or set_value()
.
parent
A valid TreeIter
sibling
A valid TreeIter
Returns
iter
An unset TreeIter
to set to the new row
Prepends a new row to self
. If parent
is non-None
, then it will prepend
the new row before the first child of parent
, otherwise it will prepend a row
to the top level. iter
will be changed to point to this new row. The row
will be empty after this function is called. To fill in values, you need to
call set()
or set_value()
.
parent
A valid TreeIter
Returns
iter
An unset TreeIter
to set to the prepended row
Creates a new tree store as with n_columns
columns each of the types passed
in. Note that only types derived from standard GObject fundamental types
are supported.
As an example,
gtk_tree_store_new (3, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_TEXTURE);
will create a new TreeStore
with three columns, of type
int
, gchararray
, and gdk::Texture
respectively.
Returns
a new TreeStore
Creates a new row at position
. iter
will be changed to point to this
new row. If position
is -1, or larger than the number of rows on the list, then
the new row will be appended to the list. The row will be filled with
the values given to this function.
Calling
gtk_tree_store_insert_with_values (tree_store, iter, position, ...)
has the same effect as calling
⚠️ The following code is in C ⚠️
gtk_tree_store_insert (tree_store, iter, position);
gtk_tree_store_set (tree_store, iter, ...);
with the different that the former will only emit a row_inserted signal,
while the latter will emit row_inserted, row_changed and if the tree store
is sorted, rows_reordered. Since emitting the rows_reordered signal
repeatedly can affect the performance of the program,
gtk_tree_store_insert_with_values()
should generally be preferred when
inserting rows in a sorted tree store.
parent
A valid TreeIter
position
position to insert the new row, or -1 to append after existing rows
Returns
iter
An unset TreeIter
to set the new row
Reorders the children of parent
in self
to follow the order
indicated by new_order
. Note that this function only works with
unsorted stores.
parent
A TreeIter
new_order
an array of integers mapping the new position of each child
to its old position before the re-ordering,
i.e. new_order``[newpos] = oldpos
.
Sets the value of one or more cells in the row referenced by iter
.
The variable argument list should contain integer column numbers,
each column number followed by the value to be set.
The list is terminated by a -1. For example, to set column 0 with type
G_TYPE_STRING
to “Foo”, you would write
gtk_tree_store_set (store, iter, 0, "Foo", -1)
.
The value will be referenced by the store if it is a G_TYPE_OBJECT
, and it
will be copied if it is a G_TYPE_STRING
or G_TYPE_BOXED
.
iter
A valid TreeIter
for the row being modified
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 TreeStore
impl UnwindSafe for TreeStore
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
.