#[repr(transparent)]pub struct TreeView { /* private fields */ }Expand description
Widget that displays any object that implements the TreeModel interface.
Please refer to the [tree widget conceptual overview][TreeWidget] for an overview of all the objects and data types related to the tree widget and how they work together.
Several different coordinate systems are exposed in the GtkTreeView API. These are:

Coordinate systems in GtkTreeView API:
- 
Widget coordinates: Coordinates relative to the widget (usually widget->window).
- 
Bin window coordinates: Coordinates relative to the window that GtkTreeView renders to. 
- 
Tree coordinates: Coordinates relative to the entire scrollable area of GtkTreeView. These coordinates start at (0, 0) for row 0 of the tree. 
Several functions are available for converting between the different
coordinate systems. The most common translations are between widget and bin
window coordinates and between bin window and tree coordinates. For the
former you can use TreeViewExt::convert_widget_to_bin_window_coords()
(and vice versa), for the latter TreeViewExt::convert_bin_window_to_tree_coords()
(and vice versa).
GtkTreeView as GtkBuildable
The GtkTreeView implementation of the GtkBuildable interface accepts
TreeViewColumn objects as <child> elements and exposes the internal
TreeSelection in UI definitions.
An example of a UI definition fragment with GtkTreeView:
⚠️ The following code is in xml ⚠️
<object class="GtkTreeView" id="treeview">
  <property name="model">liststore1</property>
  <child>
    <object class="GtkTreeViewColumn" id="test-column">
      <property name="title">Test</property>
      <child>
        <object class="GtkCellRendererText" id="test-renderer"/>
        <attributes>
          <attribute name="text">1</attribute>
        </attributes>
      </child>
    </object>
  </child>
  <child internal-child="selection">
    <object class="GtkTreeSelection" id="selection">
      <signal name="changed" handler="on_treeview_selection_changed"/>
    </object>
  </child>
</object>CSS nodes
⚠️ The following code is in plain ⚠️
treeview.view
├── header
│   ├── <column header>
┊   ┊
│   ╰── <column header>
│
╰── [rubberband]GtkTreeView has a main CSS node with name treeview and style class .view. It has a subnode with name header, which is the parent for all the column header widgets’ CSS nodes. For rubberband selection, a subnode with name rubberband is used.
Implements
TreeViewExt, ContainerExt, WidgetExt, glib::ObjectExt, BuildableExt, ScrollableExt, ContainerExtManual, WidgetExtManual, BuildableExtManual
Implementations
sourceimpl TreeView
 
impl TreeView
pub const NONE: Option<&'static TreeView> = None
sourcepub fn with_model(model: &impl IsA<TreeModel>) -> TreeView
 
pub fn with_model(model: &impl IsA<TreeModel>) -> TreeView
sourcepub fn builder() -> TreeViewBuilder
 
pub fn builder() -> TreeViewBuilder
Creates a new builder-pattern struct instance to construct TreeView objects.
This method returns an instance of TreeViewBuilder which can be used to create TreeView objects.
Trait Implementations
sourceimpl<T: ContainerImpl> IsSubclassable<T> for TreeView
 
impl<T: ContainerImpl> IsSubclassable<T> for TreeView
sourcefn class_init(class: &mut Class<Self>)
 
fn class_init(class: &mut Class<Self>)
sourcefn instance_init(instance: &mut InitializingObject<T>)
 
fn instance_init(instance: &mut InitializingObject<T>)
sourceimpl Ord for TreeView
 
impl Ord for TreeView
1.21.0 · sourceconst fn max(self, other: Self) -> Self
 
const fn max(self, other: Self) -> Self
1.21.0 · sourceconst fn min(self, other: Self) -> Self
 
const fn min(self, other: Self) -> Self
1.50.0 · sourceconst fn clamp(self, min: Self, max: Self) -> Selfwhere
    Self: PartialOrd<Self>,
 
const fn clamp(self, min: Self, max: Self) -> Selfwhere
    Self: PartialOrd<Self>,
sourceimpl ParentClassIs for TreeView
 
impl ParentClassIs for TreeView
sourceimpl<OT: ObjectType> PartialOrd<OT> for TreeView
 
impl<OT: ObjectType> PartialOrd<OT> for TreeView
sourcefn partial_cmp(&self, other: &OT) -> Option<Ordering>
 
fn partial_cmp(&self, other: &OT) -> Option<Ordering>
1.0.0 · sourceconst fn le(&self, other: &Rhs) -> bool
 
const fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read moresourceimpl StaticType for TreeView
 
impl StaticType for TreeView
sourcefn static_type() -> Type
 
fn static_type() -> Type
Self.impl Eq for TreeView
impl IsA<Buildable> for TreeView
impl IsA<Container> for TreeView
impl IsA<Scrollable> for TreeView
impl IsA<Widget> for TreeView
Auto Trait Implementations
impl RefUnwindSafe for TreeView
impl !Send for TreeView
impl !Sync for TreeView
impl Unpin for TreeView
impl UnwindSafe for TreeView
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Cast for Twhere
    T: ObjectType,
 
impl<T> Cast for Twhere
    T: ObjectType,
sourcefn upcast<T>(self) -> Twhere
    T: ObjectType,
    Self: IsA<T>,
 
fn upcast<T>(self) -> Twhere
    T: ObjectType,
    Self: IsA<T>,
T. Read moresourcefn upcast_ref<T>(&self) -> &Twhere
    T: ObjectType,
    Self: IsA<T>,
 
fn upcast_ref<T>(&self) -> &Twhere
    T: ObjectType,
    Self: IsA<T>,
T. Read moresourcefn downcast<T>(self) -> Result<T, Self>where
    T: ObjectType,
    Self: CanDowncast<T>,
 
fn downcast<T>(self) -> Result<T, Self>where
    T: ObjectType,
    Self: CanDowncast<T>,
T. Read moresourcefn downcast_ref<T>(&self) -> Option<&T>where
    T: ObjectType,
    Self: CanDowncast<T>,
 
fn downcast_ref<T>(&self) -> Option<&T>where
    T: ObjectType,
    Self: CanDowncast<T>,
T. Read moresourcefn dynamic_cast<T>(self) -> Result<T, Self>where
    T: ObjectType,
 
fn dynamic_cast<T>(self) -> Result<T, Self>where
    T: ObjectType,
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 moresourcefn dynamic_cast_ref<T>(&self) -> Option<&T>where
    T: ObjectType,
 
fn dynamic_cast_ref<T>(&self) -> Option<&T>where
    T: ObjectType,
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 moresourceunsafe fn unsafe_cast<T>(self) -> Twhere
    T: ObjectType,
 
unsafe fn unsafe_cast<T>(self) -> Twhere
    T: ObjectType,
T unconditionally. Read moresourceunsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
    T: ObjectType,
 
unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
    T: ObjectType,
&T unconditionally. Read moresourceimpl<U> IsSubclassableExt for Uwhere
    U: IsClass + ParentClassIs,
 
impl<U> IsSubclassableExt for Uwhere
    U: IsClass + ParentClassIs,
fn parent_class_init<T>(class: &mut Class<U>)where
    T: ObjectSubclass,
    <U as ParentClassIs>::Parent: IsSubclassable<T>,
fn parent_instance_init<T>(instance: &mut InitializingObject<T>)where
    T: ObjectSubclass,
    <U as ParentClassIs>::Parent: IsSubclassable<T>,
sourceimpl<T> ObjectExt for Twhere
    T: ObjectType,
 
impl<T> ObjectExt for Twhere
    T: ObjectType,
sourcefn is<U>(&self) -> boolwhere
    U: StaticType,
 
fn is<U>(&self) -> boolwhere
    U: StaticType,
true if the object is an instance of (can be cast to) T.sourcefn object_class(&self) -> &Class<Object>
 
fn object_class(&self) -> &Class<Object>
ObjectClass of the object. Read moresourcefn class_of<U>(&self) -> Option<&Class<U>>where
    U: IsClass,
 
fn class_of<U>(&self) -> Option<&Class<U>>where
    U: IsClass,
T. Read moresourcefn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
    U: IsInterface,
 
fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
    U: IsInterface,
T of the object. Read moresourcefn set_property<V>(&self, property_name: &str, value: V)where
    V: ToValue,
 
fn set_property<V>(&self, property_name: &str, value: V)where
    V: ToValue,
sourcefn set_property_from_value(&self, property_name: &str, value: &Value)
 
fn set_property_from_value(&self, property_name: &str, value: &Value)
sourcefn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
 
fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
sourcefn set_properties_from_value(&self, property_values: &[(&str, Value)])
 
fn set_properties_from_value(&self, property_values: &[(&str, Value)])
sourcefn property<V>(&self, property_name: &str) -> Vwhere
    V: 'static + for<'b> FromValue<'b>,
 
fn property<V>(&self, property_name: &str) -> Vwhere
    V: 'static + for<'b> FromValue<'b>,
property_name of the object and cast it to the type V. Read moresourcefn property_value(&self, property_name: &str) -> Value
 
fn property_value(&self, property_name: &str) -> Value
property_name of the object. Read moresourcefn property_type(&self, property_name: &str) -> Option<Type>
 
fn property_type(&self, property_name: &str) -> Option<Type>
property_name of this object. Read moresourcefn find_property(&self, property_name: &str) -> Option<ParamSpec>
 
fn find_property(&self, property_name: &str) -> Option<ParamSpec>
ParamSpec of the property property_name of this object.sourcefn list_properties(&self) -> PtrSlice<ParamSpec>
 
fn list_properties(&self) -> PtrSlice<ParamSpec>
ParamSpec of the properties of this object.sourcefn freeze_notify(&self) -> PropertyNotificationFreezeGuard
 
fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
sourceunsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
    QD: 'static,
 
unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
    QD: 'static,
key. Read moresourceunsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
    QD: 'static,
 
unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
    QD: 'static,
key. Read moresourceunsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
    QD: 'static,
 
unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
    QD: 'static,
key. Read moresourceunsafe fn set_data<QD>(&self, key: &str, value: QD)where
    QD: 'static,
 
unsafe fn set_data<QD>(&self, key: &str, value: QD)where
    QD: 'static,
key. Read moresourceunsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
    QD: 'static,
 
unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
    QD: 'static,
key. Read moresourceunsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
    QD: 'static,
 
unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
    QD: 'static,
key. Read moresourcefn block_signal(&self, handler_id: &SignalHandlerId)
 
fn block_signal(&self, handler_id: &SignalHandlerId)
sourcefn unblock_signal(&self, handler_id: &SignalHandlerId)
 
fn unblock_signal(&self, handler_id: &SignalHandlerId)
sourcefn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
 
fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
sourcefn stop_signal_emission_by_name(&self, signal_name: &str)
 
fn stop_signal_emission_by_name(&self, signal_name: &str)
sourcefn connect<F>(
    &self,
    signal_name: &str,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
 
fn connect<F>(
    &self,
    signal_name: &str,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
signal_name on this object. Read moresourcefn connect_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
 
fn connect_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
signal_id on this object. Read moresourcefn connect_local<F>(
    &self,
    signal_name: &str,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value>,
 
fn connect_local<F>(
    &self,
    signal_name: &str,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value>,
signal_name on this object. Read moresourcefn connect_local_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value>,
 
fn connect_local_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value>,
signal_id on this object. Read moresourceunsafe fn connect_unsafe<F>(
    &self,
    signal_name: &str,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: Fn(&[Value]) -> Option<Value>,
 
unsafe fn connect_unsafe<F>(
    &self,
    signal_name: &str,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: Fn(&[Value]) -> Option<Value>,
signal_name on this object. Read moresourceunsafe fn connect_unsafe_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: Fn(&[Value]) -> Option<Value>,
 
unsafe fn connect_unsafe_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: Fn(&[Value]) -> Option<Value>,
signal_id on this object. Read moresourcefn connect_closure(
    &self,
    signal_name: &str,
    after: bool,
    closure: RustClosure
) -> SignalHandlerId
 
fn connect_closure(
    &self,
    signal_name: &str,
    after: bool,
    closure: RustClosure
) -> SignalHandlerId
signal_name on this object. Read moresourcefn connect_closure_id(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    closure: RustClosure
) -> SignalHandlerId
 
fn connect_closure_id(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    closure: RustClosure
) -> SignalHandlerId
signal_id on this object. Read moresourcefn watch_closure(&self, closure: &impl AsRef<Closure>)
 
fn watch_closure(&self, closure: &impl AsRef<Closure>)
closure to the lifetime of the object. When
the object’s reference count drops to zero, the closure will be
invalidated. An invalidated closure will ignore any calls to
invoke_with_values, or
invoke when using Rust closures. Read moresourcefn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere
    R: TryFromClosureReturnValue,
 
fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere
    R: TryFromClosureReturnValue,
sourcefn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
 
fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
Self::emit but takes Value for the arguments.sourcefn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
    R: TryFromClosureReturnValue,
 
fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
    R: TryFromClosureReturnValue,
sourcefn emit_by_name_with_values(
    &self,
    signal_name: &str,
    args: &[Value]
) -> Option<Value>
 
fn emit_by_name_with_values(
    &self,
    signal_name: &str,
    args: &[Value]
) -> Option<Value>
sourcefn emit_by_name_with_details<R>(
    &self,
    signal_name: &str,
    details: Quark,
    args: &[&dyn ToValue]
) -> Rwhere
    R: TryFromClosureReturnValue,
 
fn emit_by_name_with_details<R>(
    &self,
    signal_name: &str,
    details: Quark,
    args: &[&dyn ToValue]
) -> Rwhere
    R: TryFromClosureReturnValue,
sourcefn emit_by_name_with_details_and_values(
    &self,
    signal_name: &str,
    details: Quark,
    args: &[Value]
) -> Option<Value>
 
fn emit_by_name_with_details_and_values(
    &self,
    signal_name: &str,
    details: Quark,
    args: &[Value]
) -> Option<Value>
sourcefn emit_with_details<R>(
    &self,
    signal_id: SignalId,
    details: Quark,
    args: &[&dyn ToValue]
) -> Rwhere
    R: TryFromClosureReturnValue,
 
fn emit_with_details<R>(
    &self,
    signal_id: SignalId,
    details: Quark,
    args: &[&dyn ToValue]
) -> Rwhere
    R: TryFromClosureReturnValue,
sourcefn emit_with_details_and_values(
    &self,
    signal_id: SignalId,
    details: Quark,
    args: &[Value]
) -> Option<Value>
 
fn emit_with_details_and_values(
    &self,
    signal_id: SignalId,
    details: Quark,
    args: &[Value]
) -> Option<Value>
sourcefn disconnect(&self, handler_id: SignalHandlerId)
 
fn disconnect(&self, handler_id: SignalHandlerId)
sourcefn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
    F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
 
fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
    F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
notify signal of the object. Read moresourcefn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
    F: 'static + Fn(&T, &ParamSpec),
 
fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
    F: 'static + Fn(&T, &ParamSpec),
notify signal of the object. Read moresourceunsafe fn connect_notify_unsafe<F>(
    &self,
    name: Option<&str>,
    f: F
) -> SignalHandlerIdwhere
    F: Fn(&T, &ParamSpec),
 
unsafe fn connect_notify_unsafe<F>(
    &self,
    name: Option<&str>,
    f: F
) -> SignalHandlerIdwhere
    F: Fn(&T, &ParamSpec),
notify signal of the object. Read more