tk-framework-qtwidgets
  • ShotGrid Activity Stream Widget
  • Auto-Elide label
  • ShotGrid Search Completers
  • ShotGrid Search Widget
  • Context Selector Widget
  • Delegates
  • Filtering
  • Help Screen Popup
  • Model Related Classes
    • HierarchicalFilteringProxyModel
    • ShotgunSortFilterProxyModel
  • Navigation Widgets
  • Shotgun Note Input Widget
  • Text Overlay Widget
  • ShotGrid Playback Label Widget
  • Screen Capture Widget
  • ShotGrid Field Widgets
  • ShotGrid Menus
  • Shotgun Widgets
  • Spinner Widget
  • ShotGrid Version Details Widget
  • View Related Classes
Alphabetic Index
tk-framework-qtwidgets v2.10.6.
This documentation is part of the ShotGrid Pipeline Toolkit. For more information, please visit The ShotGrid developer portal.. The code associated with this documentation can be found here.

Privacy settings

Do not sell my personal information

Privacy/Cookies

tk-framework-qtwidgets
  • Docs »
  • Model Related Classes

Model Related Classes¶

The models module contains QT Models and model related classes that are useful when building MVC setups and when you need to filter data in various ways.

HierarchicalFilteringProxyModel¶

class models.HierarchicalFilteringProxyModel(parent=None)[source]¶

Bases: PySide2.QtCore.QSortFilterProxyModel

Inherited from a QSortFilterProxyModel, this class implements filtering across all levels of a hierarchy in a hierarchical (tree-based) model and provides a simple interface for derived classes so that all they need to do is filter a single item as requested.

Parameters:parent (QWidget) – The parent QObject to use for this instance
enable_caching(enable=True)[source]¶

Allow control over enabling/disabling of the accepted cache used to accelerate filtering. Can be used for debug purposes to ensure the caching isn’t the cause of incorrect filtering/sorting or instability!

Parameters:enable – True if caching should be enabled, False if it should be disabled.
_is_row_accepted(src_row, src_parent_idx, parent_accepted)[source]¶

Override this method to decide if the specified row should be accepted or not by the filter.

This should be overridden instead of filterAcceptsRow in derived classes

Parameters:
  • src_row – The row in the source model to filter
  • src_parent_idx – The parent QModelIndex instance to filter
  • parent_accepted – True if a parent item has been accepted by the filter
Returns:

True if this index should be accepted, otherwise False

ShotgunSortFilterProxyModel¶

class models.ShotgunSortFilterProxyModel(parent)[source]¶

Bases: PySide2.QtCore.QSortFilterProxyModel

A sort/filter proxy model that handles sorting and filtering data in a ShotgunModel by given Shotgun fields on the entities stored therein.

Initializes a new ShotgunSortFilterProxyModel.

Parameters:parent – The Qt parent of the proxy model.
lessThan(left, right)[source]¶

Returns True if “left” is less than “right”, otherwise False. This sort is handled based on the data pulled from Shotgun for the current sort_by_field registered with this proxy model.

Parameters:
  • left – The QModelIndex of the left-hand item to compare.
  • right – The QModelIndex of the right-hand item to compare against.
Returns:

Whether “left” is less than “right”.

Return type:

bool

filterAcceptsRow(row, source_parent)[source]¶

Returns True if the model index should be shown, and False if it should not. This is determined based on whether the proxy model’s filter is found in the Shotgun data for the fields specified in the filter_by_fields list registered with the proxy model.

Parameters:
  • row – The row being processed.
  • source_parent – The parent index from the source model.
Returns:

Whether the row is accepted.

Return type:

bool

Next Previous

© Copyright 2023, Autodesk