TTkTreeWidget🌶️

class TTkTreeWidget(*, header=[], sortingEnabled=True, **kwargs)[source]🌶️

Bases: TTkAbstractScrollView

The TTkTreeWidget class is a convenience class that provides a standard tree widget with a classic item-based interface.

This class is based on TTk’s Model/View architecture and uses a default model to hold items, each of which is a TTkTreeWidgetItem.

In its simplest form, a tree widget can be constructed in the following way:

import TermTk as ttk

root = ttk.TTk()

tree = ttk.TTkTree(parent=root,size=(80,24))
tree.setHeaderLabels(["Column 1", "Column 2", "Column 3"])

top = ttk.TTkTreeWidgetItem(["String A", "String B", "String C"])

tree.addTopLevelItem(top)

for i in range(5):
    child = ttk.TTkTreeWidgetItem(["Child A" + str(i), "Child B" + str(i), "Child C" + str(i)])
    top.addChild(child)

root.mainloop()

Before items can be added to the tree widget, the number of columns must be set with setHeaderLabels(). This allows each item to have one label.

The tree can have a header that contains a section for each column in the widget. It is easiest to set up the labels for each section by supplying a list of strings with setHeaderLabels().

The items in the tree can be sorted by column according to a predefined sort order. If sorting is enabled, the user can sort the items by clicking on a column header. Sorting can be enabled or disabled by calling setSortingEnabled(). The isSortingEnabled() function indicates whether sorting is enabled.

TTkContainer’s inherited init params:

Parameters:
  • layout (TermTk.TTkLayouts) – the layout of this widget, optional, defaults to TTkLayout

  • padding (TTkPadding) – the padding (top, bottom, left, right) of the widget, defaults to (0,0,0,0)

  • paddingTop (int) – the Top padding, override Top padding if already defined, optional, default=0 if padding is not defined

  • paddingBottom (int) – the Bottom padding, override Bottom padding if already defined, optional, default=0 if padding is not defined

  • paddingLeft (int) – the Left padding, override Left padding if already defined, optional, default=0 if padding is not defined

  • paddingRight (int) – the Right padding, override Right padding if already defined, optional, default=0 if padding is not defined

  • forwardStyle (bool) – [Experimental] any change of style will reflect the children, defaults to False

TTkWidget’s inherited init params:

Parameters:
  • name (str, optional) – the name of the widget, defaults to “”

  • parent (TTkWidget, optional) – the parent widget, defaults to None

  • x (int, optional) – the x position, defaults to 0

  • y (int, optional) – the y position, defaults to 0

  • pos ((int,int), optional) – the [x,y] position (override the previously defined x, y), defaults to (x,y)

  • width (int, optional) – the width of the widget, defaults to 0

  • height (int, optional) – the height of the widget, defaults to 0

  • size ((int,int), optional) – the size [width, height] of the widget (override the previously defined sizes), defaults to (width,height)

  • maxWidth (int, optional) – the maxWidth of the widget, defaults to 0x10000

  • maxHeight (int, optional) – the maxHeight of the widget, defaults to 0x10000

  • maxSize ((int,int), optional) – the max [width,height] of the widget, optional, defaults to (maxWidth,maxHeight)

  • minWidth (int, optional) – the minWidth of the widget, defaults to 0

  • minHeight (int, optional) – the minHeight of the widget, defaults to 0

  • minSize ((int,int), optional) – the minSize [width,height] of the widget, optional, defaults to (minWidth,minHeight)

  • toolTip (TTkString, optional) – This property holds the widget’s tooltip, defaults to ‘’

  • style (dict, optional) – this field hold the custom style to be used by this widget

  • addStyle (dict, optional) – this field is required to override/merge the new style on top of the current one, useful if only few params need to be changed

  • visible (bool, optional) – the visibility, optional, defaults to True

  • enabled (bool, optional) – the ability to handle input events, optional, defaults to True

Style🌶️

classStyle = {
            'default':     {
                'color': TTkColor.RST,
                'lineColor': TTkColor.fg("#444444"),
                'headerColor': TTkColor.fg("#ffffff")+TTkColor.bg("#444444")+TTkColor.BOLD,
                'selectedColor': TTkColor.fg("#ffff88")+TTkColor.bg("#000066")+TTkColor.BOLD,
                'separatorColor': TTkColor.fg("#444444")},
            'disabled':    {
                'color': TTkColor.fg("#888888"),
                'lineColor': TTkColor.fg("#888888"),
                'headerColor': TTkColor.fg("#888888"),
                'selectedColor': TTkColor.fg("#888888"),
                'separatorColor': TTkColor.fg("#888888")},
        }

Signals🌶️

closed

This signal is emitted whenever the widget is closed

currentStyleChanged

This signal is emitted whenever the widget stye change

focusChanged

This signal is emitted whenever the focus status change i.e. with the setFocus() or clearFocus() methods.

itemActivated

This signal is emitted when the user activates an item by double-clicking or pressing a special key (e.g., Enter).

itemChanged

This signal is emitted when the contents of the column in the specified item changes.

itemClicked

This signal is emitted when the user clicks inside the widget.

itemCollapsed

This signal is emitted when the specified item is collapsed so that none of its children are displayed.

itemDoubleClicked

This signal is emitted when the user double clicks inside the widget.

itemExpanded

This signal is emitted when the specified item is expanded so that all of its children are displayed.

sizeChanged

This signal is emitted whenever the widget size change

viewChanged

This signal is emitted whenever there is a change in the view content topology (size,pos)

viewMovedTo

This signal is emitted when the view content move to a new position (x,y),

viewSizeChanged

This signal is emitted when the view content size changed

Slots🌶️

Slots Inherited from: TTkAbstractScrollView

viewMoveTo(x, y)

This method is used to set the vertical and horizontal offsets of the TTkAbstractScrollViewInterface

Slots Inherited from: TTkContainer

hide()

hide the widget

show()

show the widget

Slots Inherited from: TTkWidget

close()

Close (Destroy/Remove) the widget

hide()

hide the widget

lowerWidget()

Lower the Widget below its relatives

raiseWidget([raiseParent])

Raise the Widget above its relatives

setDisabled([disabled])

This property holds whether the widget is disnabled

setEnabled([enabled])

This property holds whether the widget is enabled

setFocus()

Focus the widget

setVisible(visible)

Set the visibility status of this widget

show()

show the widget

update([repaint, updateLayout, updateParent])

Notify the drawing routine that the widget changed and needs to draw its new content.

Members🌶️

closed: pyTTkSignal🌶️

This signal is emitted whenever the widget is closed

Parameters:

widget (TTkWidget) – the widget closed (=self)

currentStyleChanged: pyTTkSignal🌶️

This signal is emitted whenever the widget stye change

Parameters:

style (dict) – the new style applied

focusChanged: pyTTkSignal🌶️

This signal is emitted whenever the focus status change i.e. with the setFocus() or clearFocus() methods

Parameters:

status (bool) – the curent focus status

itemActivated: pyTTkSignal🌶️

This signal is emitted when the user activates an item by double-clicking or pressing a special key (e.g., Enter).

Parameters:
  • item (TTkTreeWidgetItem) – the item that was clicked.

  • col (int) – the item’s column that was clicked.

itemChanged: pyTTkSignal🌶️

This signal is emitted when the contents of the column in the specified item changes.

Parameters:
  • item (TTkTreeWidgetItem) – the item reported by this signal

  • col (int) – the item’s column

itemClicked: pyTTkSignal🌶️

This signal is emitted when the user clicks inside the widget.

If no item was clicked, no signal will be emitted.

Parameters:
  • item (TTkTreeWidgetItem) – the item that was clicked.

  • col (int) – the item’s column that was clicked.

itemCollapsed: pyTTkSignal🌶️

This signal is emitted when the specified item is collapsed so that none of its children are displayed.

Parameters:

item (TTkTreeWidgetItem) – the item reported by this signal

itemDoubleClicked: pyTTkSignal🌶️

This signal is emitted when the user double clicks inside the widget.

If no item was double clicked, no signal will be emitted.

Parameters:
  • item (TTkTreeWidgetItem) – the item that was clicked.

  • col (int) – the item’s column that was clicked.

itemExpanded: pyTTkSignal🌶️

This signal is emitted when the specified item is expanded so that all of its children are displayed.

Parameters:

item (TTkTreeWidgetItem) – the item reported by this signal

sizeChanged: pyTTkSignal🌶️

This signal is emitted whenever the widget size change

Parameters:
  • width (int) – the new widget width

  • height (int) – the new widget height

viewChanged: pyTTkSignal🌶️

This signal is emitted whenever there is a change in the view content topology (size,pos)

Note

This signal must be implemented in any implementation of TTkAbstractScrollView to notify that the view content boudaries changed

viewMovedTo: pyTTkSignal🌶️

This signal is emitted when the view content move to a new position (x,y),

Parameters:
  • x (int) – the new horizontal offset

  • y (int) – the new vertical offset

viewSizeChanged: pyTTkSignal🌶️

This signal is emitted when the view content size changed

Parameters:
  • width (int) – the new width

  • height (int) – the new heighht

Methods🌶️

addTopLevelItem(item: TTkTreeWidgetItem) None[source]🌶️
addTopLevelItems(items: TTkTreeWidgetItem) None[source]🌶️
clear() None[source]🌶️
columnWidth(column: int) int[source]🌶️
indexOfTopLevelItem(item: TTkTreeWidgetItem) int[source]🌶️
isSortingEnabled() bool[source]🌶️
resizeColumnToContents(column: int) None[source]🌶️
selectedItems() list[TTkTreeWidgetItem][source]🌶️
setColumnWidth(column: int, width: int) None[source]🌶️
setHeaderLabels(labels: str) None[source]🌶️
setSortingEnabled(enabled) None[source]🌶️
sortColumn()[source]🌶️

Returns the column used to sort the contents of the widget.

sortItems(col: int, order: SortOrder) None[source]🌶️

Sorts the items in the widget in the specified order by the values in the given column.

takeTopLevelItem(index) None[source]🌶️
topLevelItem(index) TTkTreeWidgetItem[source]🌶️
viewFullAreaSize() tuple[int, int][source]🌶️

This method returns the full widget area size of the TTkAbstractScrollViewInterface implementation.

This is required to TTkAbstractScrollArea implementation to handle the on-demand scroll bars.

Note

Reimplement this function to handle this event

Returns:

the full area size as a tuple of 2 int elements (width,height)

Return type:

tuple[int,int]

Methods Inherited from: TTkAbstractScrollView

getViewOffsets()

Retrieve the vertical and horizontal offsets of the TTkAbstractScrollViewInterface

resizeEvent(w, h)

Convenience function, Event Callback triggered after a successful resize

update([repaint, updateLayout, updateParent])

Notify the drawing routine that the widget changed and needs to draw its new content.

viewDisplayedSize()

This method returns the displayed size of the TTkAbstractScrollViewInterface implementation.

viewMoveTo(x, y)

This method is used to set the vertical and horizontal offsets of the TTkAbstractScrollViewInterface

wheelEvent(evt)

This event handler, can be reimplemented in a subclass to receive mouse wheel events for the widget.

Methods Inherited from: TTkContainer

addWidget(widget)

getPadding()

Retrieve the TTkContainer's paddings sizes as shown in Layout Topology

getWidgetByName(name)

Return the widget from its name.

hide()

hide the widget

layout()

Get the Layout

maximumHeight()

maximumWidth()

minimumHeight()

minimumWidth()

mouseEvent(evt)

paintChildCanvas()

removeWidget(widget)

rootLayout()

This is a root layout mainly used to place items that are not supposed to be inside the main layout (i.e. the menu elements).

setCurrentStyle(*args, **kwargs)

setLayout(layout)

Set the Layout used by this widget to place all the child widgets.

setPadding(top, bottom, left, right)

Set the TTkContainer's paddings sizes as shown in Layout Topology

show()

show the widget

update([repaint, updateLayout, updateParent])

Notify the drawing routine that the widget changed and needs to draw its new content.

Methods Inherited from: TTkWidget

clearFocus()

Remove the Focus state of this widget

close()

Close (Destroy/Remove) the widget

currentStyle()

disableWidgetCursor([disable])

enableWidgetCursor([enable])

focusInEvent()

focusOutEvent()

focusPolicy()

geometry()

getCanvas()

getPixmap()

Convenience function which return a pixmap representing the current widget status

getWidgetByName(name)

Return the widget from its name.

hasFocus()

This property holds the focus status of this widget

height()

hide()

hide the widget

isEnabled()

This property holds whether the widget is enabled

isEntered()

isVisible()

Retrieve the visibility status of this widget

isVisibleAndParent()

lowerWidget()

Lower the Widget below its relatives

maxDimension(orientation)

maximumHeight()

maximumSize()

maximumWidth()

mergeStyle(style)

minDimension(orientation)

minimumHeight()

minimumSize()

minimumWidth()

mouseEvent(evt)

move(x, y)

Move the widget

moveEvent(x, y)

Convenience function, Event Callback triggered after a successful move

name()

paintChildCanvas()

paintEvent(canvas)

Paint Event callback, this need to be overridden in the widget.

parentWidget()

pasteEvent(txt)

Callback triggered when a paste event is forwarded to this widget.

pos()

raiseWidget([raiseParent])

Raise the Widget above its relatives

resize(width, height)

Resize the widget

resizeEvent(w, h)

Convenience function, Event Callback triggered after a successful resize

setCurrentStyle(*args, **kwargs)

setDefaultSize(arg, width, height)

setDisabled([disabled])

This property holds whether the widget is disnabled

setEnabled([enabled])

This property holds whether the widget is enabled

setFocus()

Focus the widget

setFocusPolicy(policy)

This property holds the way the widget accepts keyboard focus

setGeometry(x, y, width, height)

Resize and move the widget

setMaximumHeight(maxh)

setMaximumSize(maxw, maxh)

setMaximumWidth(maxw)

setMinimumHeight(minh)

setMinimumSize(minw, minh)

setMinimumWidth(minw)

setName(name)

Set the name of this Instance

setParent(parent)

setStyle([style])

setToolTip(toolTip)

setVisible(visible)

Set the visibility status of this widget

setWidgetCursor([pos, type])

show()

show the widget

size()

style()

toolTip()

update([repaint, updateLayout, updateParent])

Notify the drawing routine that the widget changed and needs to draw its new content.

widgetItem()

width()

x()

y()

Methods Inherited from: TMouseEvents

enterEvent(evt)

This event handler, can be reimplemented in a subclass to receive mouse enter events for the widget.

leaveEvent(evt)

This event handler, can be reimplemented in a subclass to receive mouse leave events for the widget.

mouseDoubleClickEvent(evt)

This event handler, can be reimplemented in a subclass to receive mouse click events for the widget.

mouseDragEvent(evt)

This event handler, can be reimplemented in a subclass to receive mouse drag events for the widget.

mouseMoveEvent(evt)

This event handler, can be reimplemented in a subclass to receive mouse move events for the widget.

mousePressEvent(evt)

This event handler, can be reimplemented in a subclass to receive mouse press events for the widget.

mouseReleaseEvent(evt)

This event handler, can be reimplemented in a subclass to receive mouse release events for the widget.

mouseTapEvent(evt)

This event handler, can be reimplemented in a subclass to receive mouse click events for the widget.

wheelEvent(evt)

This event handler, can be reimplemented in a subclass to receive mouse wheel events for the widget.

Methods Inherited from: TKeyEvents

keyEvent(evt)

This event handler, can be reimplemented in a subclass to receive key events for the widget.

Methods Inherited from: TDragEvents

dragEnterEvent(evt)

This event handler, can be reimplemented in a subclass to receive drag events for the widget.

dragLeaveEvent(evt)

This event handler, can be reimplemented in a subclass to receive drag events for the widget.

dragMoveEvent(evt)

This event handler, can be reimplemented in a subclass to receive drag events for the widget.

dropEvent(evt)

This event handler, can be reimplemented in a subclass to receive drag events for the widget.

TTkTreeWidget Attributes🌶️

classStyle