schrodinger.ui.qt.table_helper module

Classes to help in creating PyQt table models and views

schrodinger.ui.qt.table_helper.data_method(*roles)

A decorator for RowBasedTableModel and RowBasedListModel methods that provide data. The decorator itself must be given arguments of the Qt roles that the method will provide data for.

The decorated RowBasedTableModel method must take two or three arguments. Two argument methods will be passed:

  • The column number of the requested data (int)

  • The ROW_CLASS object representing the row to provide data for three argument methods will also be passed:

    • The Qt role (int)

The decorated RowBasedListModel method must take one or two arguments. One argument methods will be passed:

  • The ROW_CLASS object representing the row to provide data for Two argument methods will also be passed:

    • The Qt role (int)

See table_helper_example for examples of decorated methods.

schrodinger.ui.qt.table_helper.model_reset_method(func, self, *args, **kwargs)

A decorator for RowBasedTableModel and RowBasedListModel methods that reset the data model. See ModelResetContextMixin for a context manager version of this.

class schrodinger.ui.qt.table_helper.ModelResetContextMixin

Bases: object

A mixin for QtCore.QAbstractItemModel subclasses that adds a modelResetContext context manager to reset the model.

modelResetContext()

A context manager for resetting the model. See model_reset_method for a decorator version of this.

class schrodinger.ui.qt.table_helper.DataMethodDecoratorMixin(*args, **kwargs)

Bases: object

A mixin for QtCore.QAbstractItemModel subclasses that use the data_method mixin. Subclasses must define _genDataArgs.

__init__(*args, **kwargs)
data(index, role=ItemDataRole.DisplayRole)

Provide data for the specified index and role. Classes should not redefine this method. Instead, new methods should be created and decorated with data_method.

See Qt documentation for an explanation of arguments and return value

class schrodinger.ui.qt.table_helper.DataMethodDecoratorProxyMixin(*args, **kwargs)

Bases: schrodinger.ui.qt.table_helper.DataMethodDecoratorMixin

A mixin for QtCore.QAbstractProxyModel subclasses that use the data_method mixin.

data(proxy_index, role=ItemDataRole.DisplayRole)

Provide data for the specified index and role. Classes should not redefine this method. Instead, new methods should be created and decorated with data_method. If no data method for the requested role is found, then the source model’s data() method will be called.

See Qt documentation for an explanation of arguments and return value

__init__(*args, **kwargs)
class schrodinger.ui.qt.table_helper.RowBasedModelMixin(parent=None)

Bases: schrodinger.ui.qt.table_helper.ModelResetContextMixin, schrodinger.ui.qt.table_helper.DataMethodDecoratorMixin

A table model where data is organized in rows. This class is intended to be subclassed and should not be instantiated directly. All subclasses must redefine COLUMN and must include at least one method decorated with data_method. Subclasses must also redefine:

Data may be added to the table using loadData or appendRow. Data may be deleted using removeRow or removeRows. Subclass methods that reset the model may use the model_reset_method decorator.

Variables
  • Column (TableColumns) – A class describing the table’s columns. See TableColumns.

  • ROW_CLASS (type) – A class that represents a single row of the table. ROW_CLASS must be defined in any subclasses that use appendRow

  • ROW_LIST_OFFSET (int) – The index of the first element in self._rows. Setting this value to 1 allows the class to be used with one-indexed lists.

  • SHOW_ROW_NUMBERS (bool) – Whether to show row numbers in the vertical header.

The following class variables are the deprecated way of specifying columns. They may not be given if Column is used:

Variables
  • COLUMN (type) – May not be given if Column is used. A alternative method for describing the table’s columns. Column should be preferred for newly created RowTableModel subclasses. A class containing constants describing the table columns. COLUMN must also include the following attributes: (HEADERS: A list of column headers (list), NUM_COLS: The number of columns in the table (int), TOOLTIPS (optional): A list of column header tooltips (list)).

  • EDITABLE_COLS (list) – May not be given if Column is used. Use editable=True in the TableColumn declaration instead. A list of column numbers for columns that should be flagged as editable. Note that only one of EDITABLE_COLS and UNEDITABLE_COLS may be provided. If neither are provided, then no columns will be editable.

  • UNEDITABLE_COLS (list) – May not be given if Column is used. Use editable=False in the TableColumn declaration instead. A list of column numbers for columns that should be flagged as uneditable. Not necessary if COLUMN is a TableColumns object. Note that only one of EDITABLE_COLS and UNEDITABLE_COLS may be provided. If neither are provided, then no columns will be editable.

  • CHECKABLE_COLS (list) – May not be given if Column is used. Use checkable=True in the TableColumn declaration instead. A list of column numbers for columns that should be flagged as user checkable.

  • NO_DATA_CHANGED (object) – A flag that can be returned from _setData to indicate that setting the data succeeded, but that there’s no need to emit a dataChanged signal.

COLUMN = None
Column = None
EDITABLE_COLS = <object object>
UNEDITABLE_COLS = <object object>
CHECKABLE_COLS = ()
ROW_CLASS = None
ROW_LIST_OFFSET = 0
SHOW_ROW_NUMBERS = False
NO_DATA_CHANGED = <object object>
__init__(parent=None)
reset()

Remove all data from the model

columnCount(parent=None)
rowCount(parent=None)
property rows

Iterate over all rows in the model. If any data is changed, call rowChanged() method with the row’s 0-indexed number to update the view.

rowChanged(row_number)

Call this method when a specific row object has been modified. Will cause the view to redraw that row.

Parameters

row_number (int) – 0-indexed row number in the model. Corresponds to the index in the “.rows” iterator.

columnChanged(col_number)

Call this method when a specific column object has been modified. Will cause the view to redraw that column.

Parameters

col_number (int) – 0-indexed column number in the model.

loadData(rows)

Load data into the table and replace all existing data.

Parameters

rows (list) – A list of ROW_CLASS objects

appendRow(*args, **kwargs)

Add a row to the table. All arguments are passed to ROW_CLASS initialization.

Returns

The row number of the new row

Return type

int

appendRowObjects(rows)

Add rows to the table.

Parameters

rows (ROW_CLASS) – Row objects to add to the table.

appendRowObject(row)

Add a row to the table.

Parameters

row (ROW_CLASS) – Row object to add to the table.

Returns

The row number of the new row

Return type

int

removeRows(row, count, parent=None)
removeRowsByRowNumbers(rows)

Remove the given rows from the model, specified by row number, 0-indexed.

removeRowsByIndices(indices)

Remove all rows from the model specified by the given QModelIndex items.

headerData(section, orientation, role=ItemDataRole.DisplayRole)

Provide column headers, and optionally column tooltips and row numbers.

See Qt documentation for an explanation of arguments and return value

flags(index)

See Qt documentation for an method documentation.

setData(index, value, role=ItemDataRole.EditRole)

Set data for the specified index and role. Whenever possible, sub- classes should redefine _setData rather than this method.

See Qt documentation for an explanation of arguments and return value.

formatFloat(value, role, digits, fmt='')

Format floating point values for display or sorting. If role is Qt.DisplayRole, then value will be returned as a string with the specified formatting. All other role values are assumed to be a sorting role and value will be returned unchanged.

Parameters
  • value (float) – The floating point value to format

  • role (int) – The Qt data role

  • digits (int) – The number of digits to include after the decimal point for Qt.DisplayRole

  • fmt (str) – Additional floating point formatting options

Returns

The formatted or unmodified value

Return type

str or float

af2SettingsGetValue()

This function adds support for the settings mixin. It allows to save table cell values in case this table is included in the settings panel. Returns list of rows if table model is of RowBasedTableModel class type.

Returns

list of rows in tbe table’s model.

Return type

list or None

af2SettingsSetValue(value)

This function adds support for the settings mixin. It allows to set table cell values when this table is included in the settings panel.

Parameters

value (list) – settings value, which is a list of row data here.

replaceRows(new_rows)

Replace the contents of the model with the contents of the given list. The change will be presented to the view as a series of row insertions and deletions rather than as a model reset. This allows the view to properly update table selections and scroll bar position. This method may only be used if:

  • the ROW_CLASS objects can be compared using < and ==

  • the contents of the model (i.e. self._rows) are sorted in ascending order

  • the contents of new_rows are sorted in ascending order

This method is primarily intended for use when the table contains rows based on project table rows. On every project change, the project table can be reread and used to generate new_list and this method can then properly update the model.

Parameters

new_rows (list) – A list of ROW_CLASS objects

data(index, role=ItemDataRole.DisplayRole)

Provide data for the specified index and role. Classes should not redefine this method. Instead, new methods should be created and decorated with data_method.

See Qt documentation for an explanation of arguments and return value

modelResetContext()

A context manager for resetting the model. See model_reset_method for a decorator version of this.

class schrodinger.ui.qt.table_helper.RowBasedTableModel(parent=None)

Bases: schrodinger.ui.qt.table_helper.RowBasedModelMixin, PyQt6.QtCore.QAbstractTableModel

CHECKABLE_COLS = ()
COLUMN = None
class CheckIndexOption(value)

Bases: enum.Flag

An enumeration.

NoOption = 0
IndexIsValid = 1
DoNotUseParent = 2
ParentIsInvalid = 4
Column = None
EDITABLE_COLS = <object object>
HorizontalSortHint = 2
class LayoutChangeHint(value)

Bases: enum.Enum

An enumeration.

NoLayoutChangeHint = 0
VerticalSortHint = 1
HorizontalSortHint = 2
NO_DATA_CHANGED = <object object>
NoLayoutChangeHint = 0
ROW_CLASS = None
ROW_LIST_OFFSET = 0
SHOW_ROW_NUMBERS = False
UNEDITABLE_COLS = <object object>
VerticalSortHint = 1
__init__(parent=None)
af2SettingsGetValue()

This function adds support for the settings mixin. It allows to save table cell values in case this table is included in the settings panel. Returns list of rows if table model is of RowBasedTableModel class type.

Returns

list of rows in tbe table’s model.

Return type

list or None

af2SettingsSetValue(value)

This function adds support for the settings mixin. It allows to set table cell values when this table is included in the settings panel.

Parameters

value (list) – settings value, which is a list of row data here.

appendRow(*args, **kwargs)

Add a row to the table. All arguments are passed to ROW_CLASS initialization.

Returns

The row number of the new row

Return type

int

appendRowObject(row)

Add a row to the table.

Parameters

row (ROW_CLASS) – Row object to add to the table.

Returns

The row number of the new row

Return type

int

appendRowObjects(rows)

Add rows to the table.

Parameters

rows (ROW_CLASS) – Row objects to add to the table.

beginInsertColumns(self, parent: QModelIndex, first: int, last: int)
beginInsertRows(self, parent: QModelIndex, first: int, last: int)
beginMoveColumns(self, sourceParent: QModelIndex, sourceFirst: int, sourceLast: int, destinationParent: QModelIndex, destinationColumn: int) bool
beginMoveRows(self, sourceParent: QModelIndex, sourceFirst: int, sourceLast: int, destinationParent: QModelIndex, destinationRow: int) bool
beginRemoveColumns(self, parent: QModelIndex, first: int, last: int)
beginRemoveRows(self, parent: QModelIndex, first: int, last: int)
beginResetModel(self)
blockSignals(self, b: bool) bool
buddy(self, index: QModelIndex) QModelIndex
canDropMimeData(self, data: QMimeData, action: Qt.DropAction, row: int, column: int, parent: QModelIndex) bool
canFetchMore(self, parent: QModelIndex) bool
changePersistentIndex(self, from_: QModelIndex, to: QModelIndex)
changePersistentIndexList(self, from_: Iterable[QModelIndex], to: Iterable[QModelIndex])
checkIndex(self, index: QModelIndex, options: QAbstractItemModel.CheckIndexOption = QAbstractItemModel.CheckIndexOption.NoOption) bool
childEvent(self, a0: QChildEvent)
children(self) List[QObject]
clearItemData(self, index: QModelIndex) bool
columnChanged(col_number)

Call this method when a specific column object has been modified. Will cause the view to redraw that column.

Parameters

col_number (int) – 0-indexed column number in the model.

columnCount(self, parent: QModelIndex = QModelIndex()) int
columnsAboutToBeInserted

columnsAboutToBeInserted(self, parent: QModelIndex, first: int, last: int) [signal]

columnsAboutToBeMoved

columnsAboutToBeMoved(self, sourceParent: QModelIndex, sourceStart: int, sourceEnd: int, destinationParent: QModelIndex, destinationColumn: int) [signal]

columnsAboutToBeRemoved

columnsAboutToBeRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

columnsInserted

columnsInserted(self, parent: QModelIndex, first: int, last: int) [signal]

columnsMoved

columnsMoved(self, parent: QModelIndex, start: int, end: int, destination: QModelIndex, column: int) [signal]

columnsRemoved

columnsRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

connectNotify(self, signal: QMetaMethod)
createIndex(self, row: int, column: int, object: object = 0) QModelIndex
customEvent(self, a0: QEvent)
data(index, role=ItemDataRole.DisplayRole)

Provide data for the specified index and role. Classes should not redefine this method. Instead, new methods should be created and decorated with data_method.

See Qt documentation for an explanation of arguments and return value

dataChanged

dataChanged(self, topLeft: QModelIndex, bottomRight: QModelIndex, roles: Iterable[int] = []) [signal]

decodeData(self, row: int, column: int, parent: QModelIndex, stream: QDataStream) bool
deleteLater(self)
destroyed

destroyed(self, object: typing.Optional[QObject] = None) [signal]

disconnect(a0: QMetaObject.Connection) bool
disconnect(self) None
disconnectNotify(self, signal: QMetaMethod)
dropMimeData(self, data: QMimeData, action: Qt.DropAction, row: int, column: int, parent: QModelIndex) bool
dumpObjectInfo(self)
dumpObjectTree(self)
dynamicPropertyNames(self) List[QByteArray]
encodeData(self, indexes: Iterable[QModelIndex], stream: QDataStream)
endInsertColumns(self)
endInsertRows(self)
endMoveColumns(self)
endMoveRows(self)
endRemoveColumns(self)
endRemoveRows(self)
endResetModel(self)
event(self, a0: QEvent) bool
eventFilter(self, a0: QObject, a1: QEvent) bool
fetchMore(self, parent: QModelIndex)
findChild(self, type: type, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) QObject
findChild(self, types: Tuple, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) QObject
findChildren(self, type: type, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, types: Tuple, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, type: type, re: QRegularExpression, options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, types: Tuple, re: QRegularExpression, options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
flags(index)

See Qt documentation for an method documentation.

formatFloat(value, role, digits, fmt='')

Format floating point values for display or sorting. If role is Qt.DisplayRole, then value will be returned as a string with the specified formatting. All other role values are assumed to be a sorting role and value will be returned unchanged.

Parameters
  • value (float) – The floating point value to format

  • role (int) – The Qt data role

  • digits (int) – The number of digits to include after the decimal point for Qt.DisplayRole

  • fmt (str) – Additional floating point formatting options

Returns

The formatted or unmodified value

Return type

str or float

hasChildren(self, parent: QModelIndex = QModelIndex()) bool
hasIndex(self, row: int, column: int, parent: QModelIndex = QModelIndex()) bool
headerData(section, orientation, role=ItemDataRole.DisplayRole)

Provide column headers, and optionally column tooltips and row numbers.

See Qt documentation for an explanation of arguments and return value

headerDataChanged

headerDataChanged(self, orientation: Qt.Orientation, first: int, last: int) [signal]

index(self, row: int, column: int, parent: QModelIndex = QModelIndex()) QModelIndex
inherits(self, classname: str) bool
insertColumn(self, column: int, parent: QModelIndex = QModelIndex()) bool
insertColumns(self, column: int, count: int, parent: QModelIndex = QModelIndex()) bool
insertRow(self, row: int, parent: QModelIndex = QModelIndex()) bool
insertRows(self, row: int, count: int, parent: QModelIndex = QModelIndex()) bool
installEventFilter(self, a0: QObject)
isSignalConnected(self, signal: QMetaMethod) bool
isWidgetType(self) bool
isWindowType(self) bool
itemData(self, index: QModelIndex) Dict[int, Any]
killTimer(self, id: int)
layoutAboutToBeChanged

layoutAboutToBeChanged(self, parents: Iterable[QPersistentModelIndex] = [], hint: QAbstractItemModel.LayoutChangeHint = QAbstractItemModel.NoLayoutChangeHint) [signal]

layoutChanged

layoutChanged(self, parents: Iterable[QPersistentModelIndex] = [], hint: QAbstractItemModel.LayoutChangeHint = QAbstractItemModel.NoLayoutChangeHint) [signal]

loadData(rows)

Load data into the table and replace all existing data.

Parameters

rows (list) – A list of ROW_CLASS objects

match(self, start: QModelIndex, role: int, value: Any, hits: int = 1, flags: Qt.MatchFlag = Qt.MatchFlags(Qt.MatchStartsWith | Qt.MatchWrap)) List[QModelIndex]
metaObject(self) QMetaObject
mimeData(self, indexes: Iterable[QModelIndex]) QMimeData
mimeTypes(self) List[str]
modelAboutToBeReset

modelAboutToBeReset(self) [signal]

modelReset

modelReset(self) [signal]

modelResetContext()

A context manager for resetting the model. See model_reset_method for a decorator version of this.

moveColumn(self, sourceParent: QModelIndex, sourceColumn: int, destinationParent: QModelIndex, destinationChild: int) bool
moveColumns(self, sourceParent: QModelIndex, sourceColumn: int, count: int, destinationParent: QModelIndex, destinationChild: int) bool
moveRow(self, sourceParent: QModelIndex, sourceRow: int, destinationParent: QModelIndex, destinationChild: int) bool
moveRows(self, sourceParent: QModelIndex, sourceRow: int, count: int, destinationParent: QModelIndex, destinationChild: int) bool
moveToThread(self, thread: QThread)
objectName(self) str
objectNameChanged

objectNameChanged(self, objectName: str) [signal]

parent(self) QObject
persistentIndexList(self) List[QModelIndex]
property(self, name: str) Any
pyqtConfigure(...)

Each keyword argument is either the name of a Qt property or a Qt signal. For properties the property is set to the given value which should be of an appropriate type. For signals the signal is connected to the given value which should be a callable.

receivers(self, signal: PYQT_SIGNAL) int
removeColumn(self, column: int, parent: QModelIndex = QModelIndex()) bool
removeColumns(self, column: int, count: int, parent: QModelIndex = QModelIndex()) bool
removeEventFilter(self, a0: QObject)
removeRow(self, row: int, parent: QModelIndex = QModelIndex()) bool
removeRows(self, row: int, count: int, parent: QModelIndex = QModelIndex()) bool
removeRowsByIndices(indices)

Remove all rows from the model specified by the given QModelIndex items.

removeRowsByRowNumbers(rows)

Remove the given rows from the model, specified by row number, 0-indexed.

replaceRows(new_rows)

Replace the contents of the model with the contents of the given list. The change will be presented to the view as a series of row insertions and deletions rather than as a model reset. This allows the view to properly update table selections and scroll bar position. This method may only be used if:

  • the ROW_CLASS objects can be compared using < and ==

  • the contents of the model (i.e. self._rows) are sorted in ascending order

  • the contents of new_rows are sorted in ascending order

This method is primarily intended for use when the table contains rows based on project table rows. On every project change, the project table can be reread and used to generate new_list and this method can then properly update the model.

Parameters

new_rows (list) – A list of ROW_CLASS objects

reset()

Remove all data from the model

resetInternalData(self)
revert(self)
roleNames(self) Dict[int, QByteArray]
rowChanged(row_number)

Call this method when a specific row object has been modified. Will cause the view to redraw that row.

Parameters

row_number (int) – 0-indexed row number in the model. Corresponds to the index in the “.rows” iterator.

rowCount(self, parent: QModelIndex = QModelIndex()) int
property rows

Iterate over all rows in the model. If any data is changed, call rowChanged() method with the row’s 0-indexed number to update the view.

rowsAboutToBeInserted

rowsAboutToBeInserted(self, parent: QModelIndex, first: int, last: int) [signal]

rowsAboutToBeMoved

rowsAboutToBeMoved(self, sourceParent: QModelIndex, sourceStart: int, sourceEnd: int, destinationParent: QModelIndex, destinationRow: int) [signal]

rowsAboutToBeRemoved

rowsAboutToBeRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

rowsInserted

rowsInserted(self, parent: QModelIndex, first: int, last: int) [signal]

rowsMoved

rowsMoved(self, parent: QModelIndex, start: int, end: int, destination: QModelIndex, row: int) [signal]

rowsRemoved

rowsRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

sender(self) QObject
senderSignalIndex(self) int
setData(index, value, role=ItemDataRole.EditRole)

Set data for the specified index and role. Whenever possible, sub- classes should redefine _setData rather than this method.

See Qt documentation for an explanation of arguments and return value.

setHeaderData(self, section: int, orientation: Qt.Orientation, value: Any, role: int = Qt.EditRole) bool
setItemData(self, index: QModelIndex, roles: Dict[int, Any]) bool
setObjectName(self, name: str)
setParent(self, a0: QObject)
setProperty(self, name: str, value: Any) bool
sibling(self, row: int, column: int, idx: QModelIndex) QModelIndex
signalsBlocked(self) bool
sort(self, column: int, order: Qt.SortOrder = Qt.AscendingOrder)
span(self, index: QModelIndex) QSize
startTimer(self, interval: int, timerType: Qt.TimerType = Qt.CoarseTimer) int
staticMetaObject = <PyQt6.QtCore.QMetaObject object>
submit(self) bool
supportedDragActions(self) Qt.DropAction
supportedDropActions(self) Qt.DropAction
thread(self) QThread
timerEvent(self, a0: QTimerEvent)
tr(sourceText: str, disambiguation: typing.Optional[str] = None, n: int = - 1) str
class schrodinger.ui.qt.table_helper.RowBasedListModel(parent=None)

Bases: schrodinger.ui.qt.table_helper.RowBasedModelMixin, PyQt6.QtCore.QAbstractTableModel

A model class for use with QtWidgets.QListView views. The model has no headers and only one column. Note that the Column class variable is not needed.

columnCount(self, parent: QModelIndex = QModelIndex()) int
headerData(section, orientation, role=ItemDataRole.DisplayRole)

Provide column headers, and optionally column tooltips and row numbers.

See Qt documentation for an explanation of arguments and return value

index(self, row: int, column: int, parent: QModelIndex = QModelIndex()) QModelIndex
CHECKABLE_COLS = ()
COLUMN = None
class CheckIndexOption(value)

Bases: enum.Flag

An enumeration.

NoOption = 0
IndexIsValid = 1
DoNotUseParent = 2
ParentIsInvalid = 4
Column = None
EDITABLE_COLS = <object object>
HorizontalSortHint = 2
class LayoutChangeHint(value)

Bases: enum.Enum

An enumeration.

NoLayoutChangeHint = 0
VerticalSortHint = 1
HorizontalSortHint = 2
NO_DATA_CHANGED = <object object>
NoLayoutChangeHint = 0
ROW_CLASS = None
ROW_LIST_OFFSET = 0
SHOW_ROW_NUMBERS = False
UNEDITABLE_COLS = <object object>
VerticalSortHint = 1
__init__(parent=None)
af2SettingsGetValue()

This function adds support for the settings mixin. It allows to save table cell values in case this table is included in the settings panel. Returns list of rows if table model is of RowBasedTableModel class type.

Returns

list of rows in tbe table’s model.

Return type

list or None

af2SettingsSetValue(value)

This function adds support for the settings mixin. It allows to set table cell values when this table is included in the settings panel.

Parameters

value (list) – settings value, which is a list of row data here.

appendRow(*args, **kwargs)

Add a row to the table. All arguments are passed to ROW_CLASS initialization.

Returns

The row number of the new row

Return type

int

appendRowObject(row)

Add a row to the table.

Parameters

row (ROW_CLASS) – Row object to add to the table.

Returns

The row number of the new row

Return type

int

appendRowObjects(rows)

Add rows to the table.

Parameters

rows (ROW_CLASS) – Row objects to add to the table.

beginInsertColumns(self, parent: QModelIndex, first: int, last: int)
beginInsertRows(self, parent: QModelIndex, first: int, last: int)
beginMoveColumns(self, sourceParent: QModelIndex, sourceFirst: int, sourceLast: int, destinationParent: QModelIndex, destinationColumn: int) bool
beginMoveRows(self, sourceParent: QModelIndex, sourceFirst: int, sourceLast: int, destinationParent: QModelIndex, destinationRow: int) bool
beginRemoveColumns(self, parent: QModelIndex, first: int, last: int)
beginRemoveRows(self, parent: QModelIndex, first: int, last: int)
beginResetModel(self)
blockSignals(self, b: bool) bool
buddy(self, index: QModelIndex) QModelIndex
canDropMimeData(self, data: QMimeData, action: Qt.DropAction, row: int, column: int, parent: QModelIndex) bool
canFetchMore(self, parent: QModelIndex) bool
changePersistentIndex(self, from_: QModelIndex, to: QModelIndex)
changePersistentIndexList(self, from_: Iterable[QModelIndex], to: Iterable[QModelIndex])
checkIndex(self, index: QModelIndex, options: QAbstractItemModel.CheckIndexOption = QAbstractItemModel.CheckIndexOption.NoOption) bool
childEvent(self, a0: QChildEvent)
children(self) List[QObject]
clearItemData(self, index: QModelIndex) bool
columnChanged(col_number)

Call this method when a specific column object has been modified. Will cause the view to redraw that column.

Parameters

col_number (int) – 0-indexed column number in the model.

columnsAboutToBeInserted

columnsAboutToBeInserted(self, parent: QModelIndex, first: int, last: int) [signal]

columnsAboutToBeMoved

columnsAboutToBeMoved(self, sourceParent: QModelIndex, sourceStart: int, sourceEnd: int, destinationParent: QModelIndex, destinationColumn: int) [signal]

columnsAboutToBeRemoved

columnsAboutToBeRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

columnsInserted

columnsInserted(self, parent: QModelIndex, first: int, last: int) [signal]

columnsMoved

columnsMoved(self, parent: QModelIndex, start: int, end: int, destination: QModelIndex, column: int) [signal]

columnsRemoved

columnsRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

connectNotify(self, signal: QMetaMethod)
createIndex(self, row: int, column: int, object: object = 0) QModelIndex
customEvent(self, a0: QEvent)
data(index, role=ItemDataRole.DisplayRole)

Provide data for the specified index and role. Classes should not redefine this method. Instead, new methods should be created and decorated with data_method.

See Qt documentation for an explanation of arguments and return value

dataChanged

dataChanged(self, topLeft: QModelIndex, bottomRight: QModelIndex, roles: Iterable[int] = []) [signal]

decodeData(self, row: int, column: int, parent: QModelIndex, stream: QDataStream) bool
deleteLater(self)
destroyed

destroyed(self, object: typing.Optional[QObject] = None) [signal]

disconnect(a0: QMetaObject.Connection) bool
disconnect(self) None
disconnectNotify(self, signal: QMetaMethod)
dropMimeData(self, data: QMimeData, action: Qt.DropAction, row: int, column: int, parent: QModelIndex) bool
dumpObjectInfo(self)
dumpObjectTree(self)
dynamicPropertyNames(self) List[QByteArray]
encodeData(self, indexes: Iterable[QModelIndex], stream: QDataStream)
endInsertColumns(self)
endInsertRows(self)
endMoveColumns(self)
endMoveRows(self)
endRemoveColumns(self)
endRemoveRows(self)
endResetModel(self)
event(self, a0: QEvent) bool
eventFilter(self, a0: QObject, a1: QEvent) bool
fetchMore(self, parent: QModelIndex)
findChild(self, type: type, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) QObject
findChild(self, types: Tuple, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) QObject
findChildren(self, type: type, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, types: Tuple, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, type: type, re: QRegularExpression, options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, types: Tuple, re: QRegularExpression, options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
flags(index)

See Qt documentation for an method documentation.

formatFloat(value, role, digits, fmt='')

Format floating point values for display or sorting. If role is Qt.DisplayRole, then value will be returned as a string with the specified formatting. All other role values are assumed to be a sorting role and value will be returned unchanged.

Parameters
  • value (float) – The floating point value to format

  • role (int) – The Qt data role

  • digits (int) – The number of digits to include after the decimal point for Qt.DisplayRole

  • fmt (str) – Additional floating point formatting options

Returns

The formatted or unmodified value

Return type

str or float

hasChildren(self, parent: QModelIndex = QModelIndex()) bool
hasIndex(self, row: int, column: int, parent: QModelIndex = QModelIndex()) bool
headerDataChanged

headerDataChanged(self, orientation: Qt.Orientation, first: int, last: int) [signal]

inherits(self, classname: str) bool
insertColumn(self, column: int, parent: QModelIndex = QModelIndex()) bool
insertColumns(self, column: int, count: int, parent: QModelIndex = QModelIndex()) bool
insertRow(self, row: int, parent: QModelIndex = QModelIndex()) bool
insertRows(self, row: int, count: int, parent: QModelIndex = QModelIndex()) bool
installEventFilter(self, a0: QObject)
isSignalConnected(self, signal: QMetaMethod) bool
isWidgetType(self) bool
isWindowType(self) bool
itemData(self, index: QModelIndex) Dict[int, Any]
killTimer(self, id: int)
layoutAboutToBeChanged

layoutAboutToBeChanged(self, parents: Iterable[QPersistentModelIndex] = [], hint: QAbstractItemModel.LayoutChangeHint = QAbstractItemModel.NoLayoutChangeHint) [signal]

layoutChanged

layoutChanged(self, parents: Iterable[QPersistentModelIndex] = [], hint: QAbstractItemModel.LayoutChangeHint = QAbstractItemModel.NoLayoutChangeHint) [signal]

loadData(rows)

Load data into the table and replace all existing data.

Parameters

rows (list) – A list of ROW_CLASS objects

match(self, start: QModelIndex, role: int, value: Any, hits: int = 1, flags: Qt.MatchFlag = Qt.MatchFlags(Qt.MatchStartsWith | Qt.MatchWrap)) List[QModelIndex]
metaObject(self) QMetaObject
mimeData(self, indexes: Iterable[QModelIndex]) QMimeData
mimeTypes(self) List[str]
modelAboutToBeReset

modelAboutToBeReset(self) [signal]

modelReset

modelReset(self) [signal]

modelResetContext()

A context manager for resetting the model. See model_reset_method for a decorator version of this.

moveColumn(self, sourceParent: QModelIndex, sourceColumn: int, destinationParent: QModelIndex, destinationChild: int) bool
moveColumns(self, sourceParent: QModelIndex, sourceColumn: int, count: int, destinationParent: QModelIndex, destinationChild: int) bool
moveRow(self, sourceParent: QModelIndex, sourceRow: int, destinationParent: QModelIndex, destinationChild: int) bool
moveRows(self, sourceParent: QModelIndex, sourceRow: int, count: int, destinationParent: QModelIndex, destinationChild: int) bool
moveToThread(self, thread: QThread)
objectName(self) str
objectNameChanged

objectNameChanged(self, objectName: str) [signal]

parent(self) QObject
persistentIndexList(self) List[QModelIndex]
property(self, name: str) Any
pyqtConfigure(...)

Each keyword argument is either the name of a Qt property or a Qt signal. For properties the property is set to the given value which should be of an appropriate type. For signals the signal is connected to the given value which should be a callable.

receivers(self, signal: PYQT_SIGNAL) int
removeColumn(self, column: int, parent: QModelIndex = QModelIndex()) bool
removeColumns(self, column: int, count: int, parent: QModelIndex = QModelIndex()) bool
removeEventFilter(self, a0: QObject)
removeRow(self, row: int, parent: QModelIndex = QModelIndex()) bool
removeRows(self, row: int, count: int, parent: QModelIndex = QModelIndex()) bool
removeRowsByIndices(indices)

Remove all rows from the model specified by the given QModelIndex items.

removeRowsByRowNumbers(rows)

Remove the given rows from the model, specified by row number, 0-indexed.

replaceRows(new_rows)

Replace the contents of the model with the contents of the given list. The change will be presented to the view as a series of row insertions and deletions rather than as a model reset. This allows the view to properly update table selections and scroll bar position. This method may only be used if:

  • the ROW_CLASS objects can be compared using < and ==

  • the contents of the model (i.e. self._rows) are sorted in ascending order

  • the contents of new_rows are sorted in ascending order

This method is primarily intended for use when the table contains rows based on project table rows. On every project change, the project table can be reread and used to generate new_list and this method can then properly update the model.

Parameters

new_rows (list) – A list of ROW_CLASS objects

reset()

Remove all data from the model

resetInternalData(self)
revert(self)
roleNames(self) Dict[int, QByteArray]
rowChanged(row_number)

Call this method when a specific row object has been modified. Will cause the view to redraw that row.

Parameters

row_number (int) – 0-indexed row number in the model. Corresponds to the index in the “.rows” iterator.

rowCount(self, parent: QModelIndex = QModelIndex()) int
property rows

Iterate over all rows in the model. If any data is changed, call rowChanged() method with the row’s 0-indexed number to update the view.

rowsAboutToBeInserted

rowsAboutToBeInserted(self, parent: QModelIndex, first: int, last: int) [signal]

rowsAboutToBeMoved

rowsAboutToBeMoved(self, sourceParent: QModelIndex, sourceStart: int, sourceEnd: int, destinationParent: QModelIndex, destinationRow: int) [signal]

rowsAboutToBeRemoved

rowsAboutToBeRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

rowsInserted

rowsInserted(self, parent: QModelIndex, first: int, last: int) [signal]

rowsMoved

rowsMoved(self, parent: QModelIndex, start: int, end: int, destination: QModelIndex, row: int) [signal]

rowsRemoved

rowsRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

sender(self) QObject
senderSignalIndex(self) int
setData(index, value, role=ItemDataRole.EditRole)

Set data for the specified index and role. Whenever possible, sub- classes should redefine _setData rather than this method.

See Qt documentation for an explanation of arguments and return value.

setHeaderData(self, section: int, orientation: Qt.Orientation, value: Any, role: int = Qt.EditRole) bool
setItemData(self, index: QModelIndex, roles: Dict[int, Any]) bool
setObjectName(self, name: str)
setParent(self, a0: QObject)
setProperty(self, name: str, value: Any) bool
sibling(self, row: int, column: int, idx: QModelIndex) QModelIndex
signalsBlocked(self) bool
sort(self, column: int, order: Qt.SortOrder = Qt.AscendingOrder)
span(self, index: QModelIndex) QSize
startTimer(self, interval: int, timerType: Qt.TimerType = Qt.CoarseTimer) int
staticMetaObject = <PyQt6.QtCore.QMetaObject object>
submit(self) bool
supportedDragActions(self) Qt.DropAction
supportedDropActions(self) Qt.DropAction
thread(self) QThread
timerEvent(self, a0: QTimerEvent)
tr(sourceText: str, disambiguation: typing.Optional[str] = None, n: int = - 1) str
class schrodinger.ui.qt.table_helper.PythonSortProxyModel(parent=None)

Bases: PyQt6.QtCore.QSortFilterProxyModel

A sorting proxy model that uses Python (rather than C++) to compare values. This allows Python lists, tuples, and custom classes to be properly sorted.

Variables
  • SORT_ROLE (int) – If specified in a subclass, this value will be used as the sort role. Otherwise, Qt defaults to Qt.DisplayRole.

  • DYNAMIC_SORT_FILTER (bool) – If specified in a subclass, this value will be used as the dynamic sorting and filtering setting (see QtCore.QSortFilterProxyModel.setDynamicSortFilter). Otherwise, Qt defaults to False in Qt4 and True in Qt5.

SORT_ROLE = None
DYNAMIC_SORT_FILTER = None
__init__(parent=None)
lessThan(left, right)

Comparison method for sorting rows and columns. Handle special case in which one or more sort data values is None by evaluating it as less than every other value.

Parameters
  • left (QtCore.QModelIndex) – table cell index

  • right (QtCore.QModelIndex) – table cell index

See Qt documentation for full method documentation.

class CheckIndexOption(value)

Bases: enum.Flag

An enumeration.

NoOption = 0
IndexIsValid = 1
DoNotUseParent = 2
ParentIsInvalid = 4
HorizontalSortHint = 2
class LayoutChangeHint(value)

Bases: enum.Enum

An enumeration.

NoLayoutChangeHint = 0
VerticalSortHint = 1
HorizontalSortHint = 2
NoLayoutChangeHint = 0
VerticalSortHint = 1
autoAcceptChildRows(self) bool
autoAcceptChildRowsChanged

autoAcceptChildRowsChanged(self, autoAcceptChildRows: bool) [signal]

beginInsertColumns(self, parent: QModelIndex, first: int, last: int)
beginInsertRows(self, parent: QModelIndex, first: int, last: int)
beginMoveColumns(self, sourceParent: QModelIndex, sourceFirst: int, sourceLast: int, destinationParent: QModelIndex, destinationColumn: int) bool
beginMoveRows(self, sourceParent: QModelIndex, sourceFirst: int, sourceLast: int, destinationParent: QModelIndex, destinationRow: int) bool
beginRemoveColumns(self, parent: QModelIndex, first: int, last: int)
beginRemoveRows(self, parent: QModelIndex, first: int, last: int)
beginResetModel(self)
blockSignals(self, b: bool) bool
buddy(self, index: QModelIndex) QModelIndex
canDropMimeData(self, data: QMimeData, action: Qt.DropAction, row: int, column: int, parent: QModelIndex) bool
canFetchMore(self, parent: QModelIndex) bool
changePersistentIndex(self, from_: QModelIndex, to: QModelIndex)
changePersistentIndexList(self, from_: Iterable[QModelIndex], to: Iterable[QModelIndex])
checkIndex(self, index: QModelIndex, options: QAbstractItemModel.CheckIndexOption = QAbstractItemModel.CheckIndexOption.NoOption) bool
childEvent(self, a0: QChildEvent)
children(self) List[QObject]
clearItemData(self, index: QModelIndex) bool
columnCount(self, parent: QModelIndex = QModelIndex()) int
columnsAboutToBeInserted

columnsAboutToBeInserted(self, parent: QModelIndex, first: int, last: int) [signal]

columnsAboutToBeMoved

columnsAboutToBeMoved(self, sourceParent: QModelIndex, sourceStart: int, sourceEnd: int, destinationParent: QModelIndex, destinationColumn: int) [signal]

columnsAboutToBeRemoved

columnsAboutToBeRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

columnsInserted

columnsInserted(self, parent: QModelIndex, first: int, last: int) [signal]

columnsMoved

columnsMoved(self, parent: QModelIndex, start: int, end: int, destination: QModelIndex, column: int) [signal]

columnsRemoved

columnsRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

connectNotify(self, signal: QMetaMethod)
createIndex(self, row: int, column: int, object: object = 0) QModelIndex
customEvent(self, a0: QEvent)
data(self, index: QModelIndex, role: int = Qt.DisplayRole) Any
dataChanged

dataChanged(self, topLeft: QModelIndex, bottomRight: QModelIndex, roles: Iterable[int] = []) [signal]

decodeData(self, row: int, column: int, parent: QModelIndex, stream: QDataStream) bool
deleteLater(self)
destroyed

destroyed(self, object: typing.Optional[QObject] = None) [signal]

disconnect(a0: QMetaObject.Connection) bool
disconnect(self) None
disconnectNotify(self, signal: QMetaMethod)
dropMimeData(self, data: QMimeData, action: Qt.DropAction, row: int, column: int, parent: QModelIndex) bool
dumpObjectInfo(self)
dumpObjectTree(self)
dynamicPropertyNames(self) List[QByteArray]
dynamicSortFilter(self) bool
dynamicSortFilterChanged

dynamicSortFilterChanged(self, dynamicSortFilter: bool) [signal]

encodeData(self, indexes: Iterable[QModelIndex], stream: QDataStream)
endInsertColumns(self)
endInsertRows(self)
endMoveColumns(self)
endMoveRows(self)
endRemoveColumns(self)
endRemoveRows(self)
endResetModel(self)
event(self, a0: QEvent) bool
eventFilter(self, a0: QObject, a1: QEvent) bool
fetchMore(self, parent: QModelIndex)
filterAcceptsColumn(self, source_column: int, source_parent: QModelIndex) bool
filterAcceptsRow(self, source_row: int, source_parent: QModelIndex) bool
filterCaseSensitivity(self) Qt.CaseSensitivity
filterCaseSensitivityChanged

filterCaseSensitivityChanged(self, filterCaseSensitivity: Qt.CaseSensitivity) [signal]

filterKeyColumn(self) int
filterRegularExpression(self) QRegularExpression
filterRole(self) int
filterRoleChanged

filterRoleChanged(self, filterRole: int) [signal]

findChild(self, type: type, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) QObject
findChild(self, types: Tuple, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) QObject
findChildren(self, type: type, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, types: Tuple, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, type: type, re: QRegularExpression, options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, types: Tuple, re: QRegularExpression, options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
flags(self, index: QModelIndex) Qt.ItemFlag
hasChildren(self, parent: QModelIndex = QModelIndex()) bool
hasIndex(self, row: int, column: int, parent: QModelIndex = QModelIndex()) bool
headerData(self, section: int, orientation: Qt.Orientation, role: int = Qt.DisplayRole) Any
headerDataChanged

headerDataChanged(self, orientation: Qt.Orientation, first: int, last: int) [signal]

index(self, row: int, column: int, parent: QModelIndex = QModelIndex()) QModelIndex
inherits(self, classname: str) bool
insertColumn(self, column: int, parent: QModelIndex = QModelIndex()) bool
insertColumns(self, column: int, count: int, parent: QModelIndex = QModelIndex()) bool
insertRow(self, row: int, parent: QModelIndex = QModelIndex()) bool
insertRows(self, row: int, count: int, parent: QModelIndex = QModelIndex()) bool
installEventFilter(self, a0: QObject)
invalidate(self)
invalidateColumnsFilter(self)
invalidateFilter(self)
invalidateRowsFilter(self)
isRecursiveFilteringEnabled(self) bool
isSignalConnected(self, signal: QMetaMethod) bool
isSortLocaleAware(self) bool
isWidgetType(self) bool
isWindowType(self) bool
itemData(self, index: QModelIndex) Dict[int, Any]
killTimer(self, id: int)
layoutAboutToBeChanged

layoutAboutToBeChanged(self, parents: Iterable[QPersistentModelIndex] = [], hint: QAbstractItemModel.LayoutChangeHint = QAbstractItemModel.NoLayoutChangeHint) [signal]

layoutChanged

layoutChanged(self, parents: Iterable[QPersistentModelIndex] = [], hint: QAbstractItemModel.LayoutChangeHint = QAbstractItemModel.NoLayoutChangeHint) [signal]

mapFromSource(self, sourceIndex: QModelIndex) QModelIndex
mapSelectionFromSource(self, sourceSelection: QItemSelection) QItemSelection
mapSelectionToSource(self, proxySelection: QItemSelection) QItemSelection
mapToSource(self, proxyIndex: QModelIndex) QModelIndex
match(self, start: QModelIndex, role: int, value: Any, hits: int = 1, flags: Qt.MatchFlag = Qt.MatchFlags(Qt.MatchStartsWith | Qt.MatchWrap)) List[QModelIndex]
metaObject(self) QMetaObject
mimeData(self, indexes: Iterable[QModelIndex]) QMimeData
mimeTypes(self) List[str]
modelAboutToBeReset

modelAboutToBeReset(self) [signal]

modelReset

modelReset(self) [signal]

moveColumn(self, sourceParent: QModelIndex, sourceColumn: int, destinationParent: QModelIndex, destinationChild: int) bool
moveColumns(self, sourceParent: QModelIndex, sourceColumn: int, count: int, destinationParent: QModelIndex, destinationChild: int) bool
moveRow(self, sourceParent: QModelIndex, sourceRow: int, destinationParent: QModelIndex, destinationChild: int) bool
moveRows(self, sourceParent: QModelIndex, sourceRow: int, count: int, destinationParent: QModelIndex, destinationChild: int) bool
moveToThread(self, thread: QThread)
objectName(self) str
objectNameChanged

objectNameChanged(self, objectName: str) [signal]

parent(self, child: QModelIndex) QModelIndex
parent(self) QObject
persistentIndexList(self) List[QModelIndex]
property(self, name: str) Any
pyqtConfigure(...)

Each keyword argument is either the name of a Qt property or a Qt signal. For properties the property is set to the given value which should be of an appropriate type. For signals the signal is connected to the given value which should be a callable.

receivers(self, signal: PYQT_SIGNAL) int
recursiveFilteringEnabledChanged

recursiveFilteringEnabledChanged(self, recursiveFilteringEnabled: bool) [signal]

removeColumn(self, column: int, parent: QModelIndex = QModelIndex()) bool
removeColumns(self, column: int, count: int, parent: QModelIndex = QModelIndex()) bool
removeEventFilter(self, a0: QObject)
removeRow(self, row: int, parent: QModelIndex = QModelIndex()) bool
removeRows(self, row: int, count: int, parent: QModelIndex = QModelIndex()) bool
resetInternalData(self)
revert(self)
roleNames(self) Dict[int, QByteArray]
rowCount(self, parent: QModelIndex = QModelIndex()) int
rowsAboutToBeInserted

rowsAboutToBeInserted(self, parent: QModelIndex, first: int, last: int) [signal]

rowsAboutToBeMoved

rowsAboutToBeMoved(self, sourceParent: QModelIndex, sourceStart: int, sourceEnd: int, destinationParent: QModelIndex, destinationRow: int) [signal]

rowsAboutToBeRemoved

rowsAboutToBeRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

rowsInserted

rowsInserted(self, parent: QModelIndex, first: int, last: int) [signal]

rowsMoved

rowsMoved(self, parent: QModelIndex, start: int, end: int, destination: QModelIndex, row: int) [signal]

rowsRemoved

rowsRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

sender(self) QObject
senderSignalIndex(self) int
setAutoAcceptChildRows(self, accept: bool)
setData(self, index: QModelIndex, value: Any, role: int = Qt.EditRole) bool
setDynamicSortFilter(self, enable: bool)
setFilterCaseSensitivity(self, cs: Qt.CaseSensitivity)
setFilterFixedString(self, pattern: str)
setFilterKeyColumn(self, column: int)
setFilterRegularExpression(self, regularExpression: QRegularExpression)
setFilterRegularExpression(self, pattern: str) None
setFilterRole(self, role: int)
setFilterWildcard(self, pattern: str)
setHeaderData(self, section: int, orientation: Qt.Orientation, value: Any, role: int = Qt.EditRole) bool
setItemData(self, index: QModelIndex, roles: Dict[int, Any]) bool
setObjectName(self, name: str)
setParent(self, a0: QObject)
setProperty(self, name: str, value: Any) bool
setRecursiveFilteringEnabled(self, recursive: bool)
setSortCaseSensitivity(self, cs: Qt.CaseSensitivity)
setSortLocaleAware(self, on: bool)
setSortRole(self, role: int)
setSourceModel(self, sourceModel: QAbstractItemModel)
sibling(self, row: int, column: int, idx: QModelIndex) QModelIndex
signalsBlocked(self) bool
sort(self, column: int, order: Qt.SortOrder = Qt.AscendingOrder)
sortCaseSensitivity(self) Qt.CaseSensitivity
sortCaseSensitivityChanged

sortCaseSensitivityChanged(self, sortCaseSensitivity: Qt.CaseSensitivity) [signal]

sortColumn(self) int
sortLocaleAwareChanged

sortLocaleAwareChanged(self, sortLocaleAware: bool) [signal]

sortOrder(self) Qt.SortOrder
sortRole(self) int
sortRoleChanged

sortRoleChanged(self, sortRole: int) [signal]

sourceModel(self) QAbstractItemModel
sourceModelChanged

sourceModelChanged(self) [signal]

span(self, index: QModelIndex) QSize
startTimer(self, interval: int, timerType: Qt.TimerType = Qt.CoarseTimer) int
staticMetaObject = <PyQt6.QtCore.QMetaObject object>
submit(self) bool
supportedDragActions(self) Qt.DropAction
supportedDropActions(self) Qt.DropAction
thread(self) QThread
timerEvent(self, a0: QTimerEvent)
tr(sourceText: str, disambiguation: typing.Optional[str] = None, n: int = - 1) str
class schrodinger.ui.qt.table_helper.SampleDataTableViewMixin(parent=None, sample_data=None)

Bases: object

A table view mixin that uses sample data to properly size columns. Additionally, the table size hint will attempt to display the full width of the table.

Variables
  • SAMPLE_DATA (dict) – A dictionary of {column number: sample string}. Any columns that do not appear in this dictionary will not be resized. Can be set by passing sample_data to __init__ or by calling setSampleData after instantiation.

  • MARGIN (int) – The additional width to add to each column included in SAMPLE_DATA

MARGIN = 20
__init__(parent=None, sample_data=None)
SAMPLE_DATA = {}
setModel(model)

After setting the model, resize the columns using SAMPLE_DATA and the header data provided by the model

See Qt documentation for an explanation of arguments

setSampleData(new_sample_data)

Sets SAMPLE_DATA to new_sample_data and updates column widths if model is set.

Parameters

new_sample_data (dict) – The new sample data

sizeHintForColumn(col_num)

Provide a size hint for the specified column using SAMPLE_DATA. Note that this method does not take header width into account as the header width is already accounted for in resizeColumnToContents.

See Qt documentation for an explanation of arguments and return value

sizeHint()

Provide a size hint that requests the full width of the table.

See Qt documentation for an explanation of arguments and return value

class schrodinger.ui.qt.table_helper.SampleDataTableView(parent=None, sample_data=None)

Bases: schrodinger.ui.qt.table_helper.SampleDataTableViewMixin, schrodinger.ui.qt.swidgets.STableView

See SampleDataTableViewMixin for features.

AboveItem = 1
AdjustIgnored = 0
AdjustToContents = 2
AdjustToContentsOnFirstShow = 1
AllEditTriggers = 31
AnimatingState = 6
AnyKeyPressed = 16
BelowItem = 2
Box = 1
CollapsingState = 5
ContiguousSelection = 4
CurrentChanged = 1
class CursorAction(value)

Bases: enum.Enum

An enumeration.

MoveUp = 0
MoveDown = 1
MoveLeft = 2
MoveRight = 3
MoveHome = 4
MoveEnd = 5
MovePageUp = 6
MovePageDown = 7
MoveNext = 8
MovePrevious = 9
DoubleClicked = 2
DragDrop = 3
class DragDropMode(value)

Bases: enum.Enum

An enumeration.

NoDragDrop = 0
DragOnly = 1
DropOnly = 2
DragDrop = 3
InternalMove = 4
DragOnly = 1
DragSelectingState = 2
DraggingState = 1
DrawChildren = 2
DrawWindowBackground = 1
class DropIndicatorPosition(value)

Bases: enum.Enum

An enumeration.

OnItem = 0
AboveItem = 1
BelowItem = 2
OnViewport = 3
DropOnly = 2
EditKeyPressed = 8
class EditTrigger(value)

Bases: enum.Flag

An enumeration.

NoEditTriggers = 0
CurrentChanged = 1
DoubleClicked = 2
SelectedClicked = 4
EditKeyPressed = 8
AnyKeyPressed = 16
AllEditTriggers = 31
EditingState = 3
EnsureVisible = 0
ExpandingState = 4
ExtendedSelection = 3
HLine = 4
IgnoreMask = 4
InternalMove = 4
MARGIN = 20
MoveDown = 1
MoveEnd = 5
MoveHome = 4
MoveLeft = 2
MoveNext = 8
MovePageDown = 7
MovePageUp = 6
MovePrevious = 9
MoveRight = 3
MoveUp = 0
MultiSelection = 2
NoDragDrop = 0
NoEditTriggers = 0
NoFrame = 0
NoSelection = 0
NoState = 0
OnItem = 0
OnViewport = 3
class PaintDeviceMetric(value)

Bases: enum.Enum

An enumeration.

PdmWidth = 1
PdmHeight = 2
PdmWidthMM = 3
PdmHeightMM = 4
PdmNumColors = 5
PdmDepth = 6
PdmDpiX = 7
PdmDpiY = 8
PdmPhysicalDpiX = 9
PdmPhysicalDpiY = 10
PdmDevicePixelRatio = 11
PdmDevicePixelRatioScaled = 12
Panel = 2
PdmDepth = 6
PdmDevicePixelRatio = 11
PdmDevicePixelRatioScaled = 12
PdmDpiX = 7
PdmDpiY = 8
PdmHeight = 2
PdmHeightMM = 4
PdmNumColors = 5
PdmPhysicalDpiX = 9
PdmPhysicalDpiY = 10
PdmWidth = 1
PdmWidthMM = 3
Plain = 16
PositionAtBottom = 2
PositionAtCenter = 3
PositionAtTop = 1
Raised = 32
class RenderFlag(value)

Bases: enum.Flag

An enumeration.

DrawWindowBackground = 1
DrawChildren = 2
IgnoreMask = 4
SAMPLE_DATA = {}
class ScrollHint(value)

Bases: enum.Enum

An enumeration.

EnsureVisible = 0
PositionAtTop = 1
PositionAtBottom = 2
PositionAtCenter = 3
class ScrollMode(value)

Bases: enum.Enum

An enumeration.

ScrollPerItem = 0
ScrollPerPixel = 1
ScrollPerItem = 0
ScrollPerPixel = 1
SelectColumns = 2
SelectItems = 0
SelectRows = 1
SelectedClicked = 4
class SelectionBehavior(value)

Bases: enum.Enum

An enumeration.

SelectItems = 0
SelectRows = 1
SelectColumns = 2
class SelectionMode(value)

Bases: enum.Enum

An enumeration.

NoSelection = 0
SingleSelection = 1
MultiSelection = 2
ExtendedSelection = 3
ContiguousSelection = 4
class Shadow(value)

Bases: enum.IntEnum

An enumeration.

Plain = 16
Raised = 32
Sunken = 48
Shadow_Mask = 240
class Shape(value)

Bases: enum.IntEnum

An enumeration.

NoFrame = 0
Box = 1
Panel = 2
WinPanel = 3
HLine = 4
VLine = 5
StyledPanel = 6
Shape_Mask = 15
SingleSelection = 1
class SizeAdjustPolicy(value)

Bases: enum.Enum

An enumeration.

AdjustIgnored = 0
AdjustToContentsOnFirstShow = 1
AdjustToContents = 2
class State(value)

Bases: enum.Enum

An enumeration.

NoState = 0
DraggingState = 1
DragSelectingState = 2
EditingState = 3
ExpandingState = 4
CollapsingState = 5
AnimatingState = 6
class StyleMask(value)

Bases: enum.Enum

An enumeration.

Shadow_Mask = 240
Shape_Mask = 15
StyledPanel = 6
Sunken = 48
VLine = 5
WinPanel = 3
__init__(parent=None, sample_data=None)

Create a STableView instance.

acceptDrops(self) bool
accessibleDescription(self) str
accessibleName(self) str
actionEvent(self, a0: QActionEvent)
actions(self) List[QAction]
activateWindow(self)
activated

activated(self, index: QModelIndex) [signal]

addAction(self, action: QAction)
addActions(self, actions: Iterable[QAction])
addScrollBarWidget(self, widget: QWidget, alignment: Qt.AlignmentFlag)
adjustSize(self)
alternatingRowColors(self) bool
autoFillBackground(self) bool
autoScrollMargin(self) int
backgroundRole(self) QPalette.ColorRole
baseSize(self) QSize
blockSignals(self, b: bool) bool
changeEvent(self, a0: QEvent)
childAt(self, p: QPoint) QWidget
childAt(self, ax: int, ay: int) QWidget
childEvent(self, a0: QChildEvent)
children(self) List[QObject]
childrenRect(self) QRect
childrenRegion(self) QRegion
clearFocus(self)
clearMask(self)
clearSelection(self)
clearSpans(self)
clicked

clicked(self, index: QModelIndex) [signal]

close(self) bool
closeEditor(self, editor: QWidget, hint: QAbstractItemDelegate.EndEditHint)
closeEvent(self, a0: QCloseEvent)
closePersistentEditor(self, index: QModelIndex)
colorCount(self) int
columnAt(self, x: int) int
columnCountChanged(self, oldCount: int, newCount: int)
columnMoved(self, column: int, oldIndex: int, newIndex: int)
columnResized(self, column: int, oldWidth: int, newWidth: int)
columnSpan(self, row: int, column: int) int
columnViewportPosition(self, column: int) int
columnWidth(self, column: int) int
commitData(self, editor: QWidget)
connectNotify(self, signal: QMetaMethod)
contentsMargins(self) QMargins
contentsRect(self) QRect
contextMenuEvent(self, a0: QContextMenuEvent)
contextMenuPolicy(self) Qt.ContextMenuPolicy
cornerWidget(self) QWidget
create(self, window: PyQt6.sip.voidptr = 0, initializeWindow: bool = True, destroyOldWindow: bool = True)
createWindowContainer(window: QWindow, parent: typing.Optional[QWidget] = None, flags: Qt.WindowType = Qt.WindowFlags()) QWidget
currentChanged(self, current: QModelIndex, previous: QModelIndex)
currentIndex(self) QModelIndex
cursor(self) QCursor
customContextMenuRequested

customContextMenuRequested(self, pos: QPoint) [signal]

customEvent(self, a0: QEvent)
dataChanged(self, topLeft: QModelIndex, bottomRight: QModelIndex, roles: Iterable[int] = [])
defaultDropAction(self) Qt.DropAction
deleteLater(self)
depth(self) int
destroy(self, destroyWindow: bool = True, destroySubWindows: bool = True)
destroyed

destroyed(self, object: typing.Optional[QObject] = None) [signal]

devType(self) int
devicePixelRatio(self) float
devicePixelRatioF(self) float
devicePixelRatioFScale() float
dirtyRegionOffset(self) QPoint
disconnect(a0: QMetaObject.Connection) bool
disconnect(self) None
disconnectNotify(self, signal: QMetaMethod)
doubleClicked

doubleClicked(self, index: QModelIndex) [signal]

dragDropMode(self) QAbstractItemView.DragDropMode
dragDropOverwriteMode(self) bool
dragEnabled(self) bool
dragEnterEvent(self, e: QDragEnterEvent)
dragLeaveEvent(self, e: QDragLeaveEvent)
dragMoveEvent(self, e: QDragMoveEvent)
drawFrame(self, a0: QPainter)
dropEvent(self, e: QDropEvent)
dropIndicatorPosition(self) QAbstractItemView.DropIndicatorPosition
dumpObjectInfo(self)
dumpObjectTree(self)
dynamicPropertyNames(self) List[QByteArray]
edit(self, index: QModelIndex)
edit(self, index: QModelIndex, trigger: QAbstractItemView.EditTrigger, event: QEvent) bool
editTriggers(self) QAbstractItemView.EditTrigger
editorDestroyed(self, editor: QObject)
effectiveWinId(self) PyQt6.sip.voidptr
ensurePolished(self)
enterEvent(self, event: QEnterEvent)
entered

entered(self, index: QModelIndex) [signal]

event(self, event: QEvent) bool
eventFilter(self, object: QObject, event: QEvent) bool
executeDelayedItemsLayout(self)
find(a0: PyQt6.sip.voidptr) QWidget
findChild(self, type: type, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) QObject
findChild(self, types: Tuple, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) QObject
findChildren(self, type: type, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, types: Tuple, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, type: type, re: QRegularExpression, options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, types: Tuple, re: QRegularExpression, options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
focusInEvent(self, e: QFocusEvent)
focusNextChild(self) bool
focusNextPrevChild(self, next: bool) bool
focusOutEvent(self, e: QFocusEvent)
focusPolicy(self) Qt.FocusPolicy
focusPreviousChild(self) bool
focusProxy(self) QWidget
focusWidget(self) QWidget
font(self) QFont
fontInfo(self) QFontInfo
fontMetrics(self) QFontMetrics
foregroundRole(self) QPalette.ColorRole
frameGeometry(self) QRect
frameRect(self) QRect
frameShadow(self) QFrame.Shadow
frameShape(self) QFrame.Shape
frameSize(self) QSize
frameStyle(self) int
frameWidth(self) int
geometry(self) QRect
grab(self, rectangle: QRect = QRect(QPoint(0, 0), QSize(- 1, - 1))) QPixmap
grabGesture(self, type: Qt.GestureType, flags: Qt.GestureFlag = Qt.GestureFlags())
grabKeyboard(self)
grabMouse(self)
grabMouse(self, a0: Union[QCursor, Qt.CursorShape]) None
grabShortcut(self, key: Union[QKeySequence, QKeySequence.StandardKey, str, int], context: Qt.ShortcutContext = Qt.WindowShortcut) int
graphicsEffect(self) QGraphicsEffect
graphicsProxyWidget(self) QGraphicsProxyWidget
gridStyle(self) Qt.PenStyle
hasAutoScroll(self) bool
hasFocus(self) bool
hasHeightForWidth(self) bool
hasMouseTracking(self) bool
hasTabletTracking(self) bool
height(self) int
heightForWidth(self, a0: int) int
heightMM(self) int
hide(self)
hideColumn(self, column: int)
hideEvent(self, a0: QHideEvent)
hideRow(self, row: int)
horizontalHeader(self) QHeaderView
horizontalOffset(self) int
horizontalScrollBar(self) QScrollBar
horizontalScrollBarPolicy(self) Qt.ScrollBarPolicy
horizontalScrollMode(self) QAbstractItemView.ScrollMode
horizontalScrollbarAction(self, action: int)
horizontalScrollbarValueChanged(self, value: int)
iconSize(self) QSize
iconSizeChanged

iconSizeChanged(self, size: QSize) [signal]

indexAt(self, p: QPoint) QModelIndex
indexWidget(self, index: QModelIndex) QWidget
inherits(self, classname: str) bool
initPainter(self, painter: QPainter)
initStyleOption(self, option: QStyleOptionFrame)
initViewItemOption(self, option: QStyleOptionViewItem)
inputMethodEvent(self, event: QInputMethodEvent)
inputMethodHints(self) Qt.InputMethodHint
inputMethodQuery(self, query: Qt.InputMethodQuery) Any
insertAction(self, before: QAction, action: QAction)
insertActions(self, before: QAction, actions: Iterable[QAction])
installEventFilter(self, a0: QObject)
isActiveWindow(self) bool
isAncestorOf(self, child: QWidget) bool
isColumnHidden(self, column: int) bool
isCornerButtonEnabled(self) bool
isEnabled(self) bool
isEnabledTo(self, a0: QWidget) bool
isFullScreen(self) bool
isHidden(self) bool
isIndexHidden(self, index: QModelIndex) bool
isLeftToRight(self) bool
isMaximized(self) bool
isMinimized(self) bool
isModal(self) bool
isPersistentEditorOpen(self, index: QModelIndex) bool
isRightToLeft(self) bool
isRowHidden(self, row: int) bool
isSignalConnected(self, signal: QMetaMethod) bool
isSortingEnabled(self) bool
isVisible(self) bool
isVisibleTo(self, a0: QWidget) bool
isWidgetType(self) bool
isWindow(self) bool
isWindowModified(self) bool
isWindowType(self) bool
itemDelegate(self) QAbstractItemDelegate
itemDelegateForColumn(self, column: int) QAbstractItemDelegate
itemDelegateForIndex(self, index: QModelIndex) QAbstractItemDelegate
itemDelegateForRow(self, row: int) QAbstractItemDelegate
keyPressEvent(self, e: QKeyEvent)
keyReleaseEvent(self, a0: QKeyEvent)
keyboardGrabber() QWidget
keyboardSearch(self, search: str)
killTimer(self, id: int)
layout(self) QLayout
layoutDirection(self) Qt.LayoutDirection
leaveEvent(self, a0: QEvent)
lineWidth(self) int
locale(self) QLocale
logicalDpiX(self) int
logicalDpiY(self) int
lower(self)
mapFrom(self, a0: QWidget, a1: QPoint) QPoint
mapFrom(self, a0: QWidget, a1: QPointF) QPointF
mapFromGlobal(self, a0: QPoint) QPoint
mapFromGlobal(self, a0: QPointF) QPointF
mapFromParent(self, a0: QPoint) QPoint
mapFromParent(self, a0: QPointF) QPointF
mapTo(self, a0: QWidget, a1: QPoint) QPoint
mapTo(self, a0: QWidget, a1: QPointF) QPointF
mapToGlobal(self, a0: QPoint) QPoint
mapToGlobal(self, a0: QPointF) QPointF
mapToParent(self, a0: QPoint) QPoint
mapToParent(self, a0: QPointF) QPointF
mask(self) QRegion
maximumHeight(self) int
maximumSize(self) QSize
maximumViewportSize(self) QSize
maximumWidth(self) int
metaObject(self) QMetaObject
metric(self, a0: QPaintDevice.PaintDeviceMetric) int
midLineWidth(self) int
minimumHeight(self) int
minimumSize(self) QSize
minimumSizeHint(self) QSize
minimumWidth(self) int
model(self) QAbstractItemModel
mouseDoubleClickEvent(self, e: QMouseEvent)
mouseGrabber() QWidget
mouseMoveEvent(self, e: QMouseEvent)
mousePressEvent(self, e: QMouseEvent)
mouseReleaseEvent(self, e: QMouseEvent)
move(self, a0: QPoint)
move(self, ax: int, ay: int) None
moveCursor(self, cursorAction: QAbstractItemView.CursorAction, modifiers: Qt.KeyboardModifier) QModelIndex
moveEvent(self, a0: QMoveEvent)
moveToThread(self, thread: QThread)
nativeEvent(self, eventType: QByteArray, message: PyQt6.sip.voidptr) Tuple[bool, PyQt6.sip.voidptr]
nativeParentWidget(self) QWidget
nextInFocusChain(self) QWidget
normalGeometry(self) QRect
objectName(self) str
objectNameChanged

objectNameChanged(self, objectName: str) [signal]

openPersistentEditor(self, index: QModelIndex)
overrideWindowFlags(self, type: Qt.WindowType)
overrideWindowState(self, state: Qt.WindowState)
paintEngine(self) QPaintEngine
paintEvent(self, e: QPaintEvent)
paintingActive(self) bool
palette(self) QPalette
parent(self) QObject
parentWidget(self) QWidget
physicalDpiX(self) int
physicalDpiY(self) int
pos(self) QPoint
pressed

pressed(self, index: QModelIndex) [signal]

previousInFocusChain(self) QWidget
property(self, name: str) Any
pyqtConfigure(...)

Each keyword argument is either the name of a Qt property or a Qt signal. For properties the property is set to the given value which should be of an appropriate type. For signals the signal is connected to the given value which should be a callable.

raise_(self)
receivers(self, signal: PYQT_SIGNAL) int
rect(self) QRect
releaseKeyboard(self)
releaseMouse(self)
releaseShortcut(self, id: int)
removeAction(self, action: QAction)
removeEventFilter(self, a0: QObject)
render(self, target: QPaintDevice, targetOffset: QPoint = QPoint(), sourceRegion: QRegion = QRegion(), flags: QWidget.RenderFlag = QWidget.RenderFlags(QWidget.DrawWindowBackground | QWidget.DrawChildren))
render(self, painter: QPainter, targetOffset: QPoint = QPoint(), sourceRegion: QRegion = QRegion(), flags: QWidget.RenderFlag = QWidget.RenderFlags(QWidget.DrawWindowBackground | QWidget.DrawChildren)) None
repaint(self)
repaint(self, x: int, y: int, w: int, h: int) None
repaint(self, a0: QRect) None
repaint(self, a0: QRegion) None
reset(self)
resetHorizontalScrollMode(self)
resetVerticalScrollMode(self)
resize(self, a0: QSize)
resize(self, w: int, h: int) None
resizeColumnToContents(self, column: int)
resizeColumnsToContents(self)
resizeEvent(self, e: QResizeEvent)
resizeRowToContents(self, row: int)
resizeRowsToContents(self)
restoreGeometry(self, geometry: QByteArray) bool
rootIndex(self) QModelIndex
rowAt(self, y: int) int
rowCountChanged(self, oldCount: int, newCount: int)
rowHeight(self, row: int) int
rowMoved(self, row: int, oldIndex: int, newIndex: int)
rowResized(self, row: int, oldHeight: int, newHeight: int)
rowSpan(self, row: int, column: int) int
rowViewportPosition(self, row: int) int
rowsAboutToBeRemoved(self, parent: QModelIndex, start: int, end: int)
rowsInserted(self, parent: QModelIndex, start: int, end: int)
saveGeometry(self) QByteArray
scheduleDelayedItemsLayout(self)
screen(self) QScreen
scroll(self, dx: int, dy: int)
scroll(self, dx: int, dy: int, a2: QRect) None
scrollBarWidgets(self, alignment: Qt.AlignmentFlag) List[QWidget]
scrollContentsBy(self, dx: int, dy: int)
scrollDirtyRegion(self, dx: int, dy: int)
scrollTo(self, index: QModelIndex, hint: QAbstractItemView.ScrollHint = QAbstractItemView.EnsureVisible)
scrollToBottom(self)
scrollToTop(self)
selectAll(self)
selectColumn(self, column: int)
selectRow(self, row: int)
selectedIndexes(self) List[QModelIndex]
selectionBehavior(self) QAbstractItemView.SelectionBehavior
selectionChanged(self, selected: QItemSelection, deselected: QItemSelection)
selectionCommand(self, index: QModelIndex, event: typing.Optional[QEvent] = None) QItemSelectionModel.SelectionFlag
selectionMode(self) QAbstractItemView.SelectionMode
selectionModel(self) QItemSelectionModel
sender(self) QObject
senderSignalIndex(self) int
setAcceptDrops(self, on: bool)
setAccessibleDescription(self, description: str)
setAccessibleName(self, name: str)
setAlternatingRowColors(self, enable: bool)
setAttribute(self, attribute: Qt.WidgetAttribute, on: bool = True)
setAutoFillBackground(self, enabled: bool)
setAutoScroll(self, enable: bool)
setAutoScrollMargin(self, margin: int)
setBackgroundRole(self, a0: QPalette.ColorRole)
setBaseSize(self, basew: int, baseh: int)
setBaseSize(self, s: QSize) None
setColumnHidden(self, column: int, hide: bool)
setColumnWidth(self, column: int, width: int)
setContentsMargins(self, left: int, top: int, right: int, bottom: int)
setContentsMargins(self, margins: QMargins) None
setContextMenuPolicy(self, policy: Qt.ContextMenuPolicy)
setCornerButtonEnabled(self, enable: bool)
setCornerWidget(self, widget: QWidget)
setCurrentIndex(self, index: QModelIndex)
setCursor(self, a0: Union[QCursor, Qt.CursorShape])
setDefaultDropAction(self, dropAction: Qt.DropAction)
setDirtyRegion(self, region: QRegion)
setDisabled(self, a0: bool)
setDragDropMode(self, behavior: QAbstractItemView.DragDropMode)
setDragDropOverwriteMode(self, overwrite: bool)
setDragEnabled(self, enable: bool)
setDropIndicatorShown(self, enable: bool)
setEditTriggers(self, triggers: QAbstractItemView.EditTrigger)
setEnabled(self, a0: bool)
setFixedHeight(self, h: int)
setFixedSize(self, a0: QSize)
setFixedSize(self, w: int, h: int) None
setFixedWidth(self, w: int)
setFocus(self)
setFocus(self, reason: Qt.FocusReason) None
setFocusPolicy(self, policy: Qt.FocusPolicy)
setFocusProxy(self, a0: QWidget)
setFont(self, a0: QFont)
setForegroundRole(self, a0: QPalette.ColorRole)
setFrameRect(self, a0: QRect)
setFrameShadow(self, a0: QFrame.Shadow)
setFrameShape(self, a0: QFrame.Shape)
setFrameStyle(self, a0: int)
setGeometry(self, a0: QRect)
setGeometry(self, ax: int, ay: int, aw: int, ah: int) None
setGraphicsEffect(self, effect: QGraphicsEffect)
setGridStyle(self, style: Qt.PenStyle)
setHidden(self, hidden: bool)
setHorizontalHeader(self, header: QHeaderView)
setHorizontalScrollBar(self, scrollbar: QScrollBar)
setHorizontalScrollBarPolicy(self, a0: Qt.ScrollBarPolicy)
setHorizontalScrollMode(self, mode: QAbstractItemView.ScrollMode)
setIconSize(self, size: QSize)
setIndexWidget(self, index: QModelIndex, widget: QWidget)
setInputMethodHints(self, hints: Qt.InputMethodHint)
setItemDelegate(self, delegate: QAbstractItemDelegate)
setItemDelegateForColumn(self, column: int, delegate: QAbstractItemDelegate)
setItemDelegateForRow(self, row: int, delegate: QAbstractItemDelegate)
setLayout(self, a0: QLayout)
setLayoutDirection(self, direction: Qt.LayoutDirection)
setLineWidth(self, a0: int)
setLocale(self, locale: QLocale)
setMask(self, a0: QBitmap)
setMask(self, a0: QRegion) None
setMaximumHeight(self, maxh: int)
setMaximumSize(self, maxw: int, maxh: int)
setMaximumSize(self, s: QSize) None
setMaximumWidth(self, maxw: int)
setMidLineWidth(self, a0: int)
setMinimumHeight(self, minh: int)
setMinimumSize(self, minw: int, minh: int)
setMinimumSize(self, s: QSize) None
setMinimumWidth(self, minw: int)
setModel(model)

After setting the model, resize the columns using SAMPLE_DATA and the header data provided by the model

See Qt documentation for an explanation of arguments

setMouseTracking(self, enable: bool)
setObjectName(self, name: str)
setPalette(self, a0: QPalette)
setParent(self, parent: QWidget)
setParent(self, parent: QWidget, f: Qt.WindowType) None
setProperty(self, name: str, value: Any) bool
setRootIndex(self, index: QModelIndex)
setRowHeight(self, row: int, height: int)
setRowHidden(self, row: int, hide: bool)
setSampleData(new_sample_data)

Sets SAMPLE_DATA to new_sample_data and updates column widths if model is set.

Parameters

new_sample_data (dict) – The new sample data

setScreen(self, a0: QScreen)
setSelection(self, rect: QRect, command: QItemSelectionModel.SelectionFlag)
setSelectionBehavior(self, behavior: QAbstractItemView.SelectionBehavior)
setSelectionMode(self, mode: QAbstractItemView.SelectionMode)
setSelectionModel(self, selectionModel: QItemSelectionModel)
setShortcutAutoRepeat(self, id: int, enabled: bool = True)
setShortcutEnabled(self, id: int, enabled: bool = True)
setShowGrid(self, show: bool)
setSizeAdjustPolicy(self, policy: QAbstractScrollArea.SizeAdjustPolicy)
setSizeIncrement(self, w: int, h: int)
setSizeIncrement(self, s: QSize) None
setSizePolicy(self, a0: QSizePolicy)
setSizePolicy(self, hor: QSizePolicy.Policy, ver: QSizePolicy.Policy) None
setSortingEnabled(self, enable: bool)
setSpan(self, row: int, column: int, rowSpan: int, columnSpan: int)
setState(self, state: QAbstractItemView.State)
setStatusTip(self, a0: str)
setStyle(self, a0: QStyle)
setStyleSheet(self, styleSheet: str)
setTabKeyNavigation(self, enable: bool)
setTabOrder(a0: QWidget, a1: QWidget)
setTabletTracking(self, enable: bool)
setTextElideMode(self, mode: Qt.TextElideMode)
setToolTip(self, a0: str)
setToolTipDuration(self, msec: int)
setUpdatesEnabled(self, enable: bool)
setVerticalHeader(self, header: QHeaderView)
setVerticalScrollBar(self, scrollbar: QScrollBar)
setVerticalScrollBarPolicy(self, a0: Qt.ScrollBarPolicy)
setVerticalScrollMode(self, mode: QAbstractItemView.ScrollMode)
setViewport(self, widget: QWidget)
setViewportMargins(self, left: int, top: int, right: int, bottom: int)
setViewportMargins(self, margins: QMargins) None
setVisible(self, visible: bool)
setWhatsThis(self, a0: str)
setWindowFilePath(self, filePath: str)
setWindowFlag(self, a0: Qt.WindowType, on: bool = True)
setWindowFlags(self, type: Qt.WindowType)
setWindowIcon(self, icon: QIcon)
setWindowIconText(self, a0: str)
setWindowModality(self, windowModality: Qt.WindowModality)
setWindowModified(self, a0: bool)
setWindowOpacity(self, level: float)
setWindowRole(self, a0: str)
setWindowState(self, state: Qt.WindowState)
setWindowTitle(self, a0: str)
setWordWrap(self, on: bool)
setupViewport(self, viewport: QWidget)
sharedPainter(self) QPainter
show(self)
showColumn(self, column: int)
showDropIndicator(self) bool
showEvent(self, a0: QShowEvent)
showFullScreen(self)
showGrid(self) bool
showMaximized(self)
showMinimized(self)
showNormal(self)
showRow(self, row: int)
signalsBlocked(self) bool
size(self) QSize
sizeAdjustPolicy(self) QAbstractScrollArea.SizeAdjustPolicy
sizeHint()

Provide a size hint that requests the full width of the table.

See Qt documentation for an explanation of arguments and return value

sizeHintForColumn(col_num)

Provide a size hint for the specified column using SAMPLE_DATA. Note that this method does not take header width into account as the header width is already accounted for in resizeColumnToContents.

See Qt documentation for an explanation of arguments and return value

sizeHintForIndex(self, index: QModelIndex) QSize
sizeHintForRow(self, row: int) int
sizeIncrement(self) QSize
sizePolicy(self) QSizePolicy
sortByColumn(self, column: int, order: Qt.SortOrder)
stackUnder(self, a0: QWidget)
startDrag(self, supportedActions: Qt.DropAction)
startTimer(self, interval: int, timerType: Qt.TimerType = Qt.CoarseTimer) int
state(self) QAbstractItemView.State
staticMetaObject = <PyQt6.QtCore.QMetaObject object>
statusTip(self) str
style(self) QStyle
styleSheet(self) str
tabKeyNavigation(self) bool
tabletEvent(self, a0: QTabletEvent)
testAttribute(self, attribute: Qt.WidgetAttribute) bool
textElideMode(self) Qt.TextElideMode
thread(self) QThread
timerEvent(self, event: QTimerEvent)
toolTip(self) str
toolTipDuration(self) int
tr(sourceText: str, disambiguation: typing.Optional[str] = None, n: int = - 1) str
underMouse(self) bool
ungrabGesture(self, type: Qt.GestureType)
unsetCursor(self)
unsetLayoutDirection(self)
unsetLocale(self)
update(self)
update(self, index: QModelIndex) None
updateEditorData(self)
updateEditorGeometries(self)
updateGeometries(self)
updateGeometry(self)
updateMicroFocus(self, query: Qt.InputMethodQuery = Qt.ImQueryAll)
updatesEnabled(self) bool
verticalHeader(self) QHeaderView
verticalOffset(self) int
verticalScrollBar(self) QScrollBar
verticalScrollBarPolicy(self) Qt.ScrollBarPolicy
verticalScrollMode(self) QAbstractItemView.ScrollMode
verticalScrollbarAction(self, action: int)
verticalScrollbarValueChanged(self, value: int)
viewport(self) QWidget
viewportEntered

viewportEntered(self) [signal]

viewportEvent(self, e: QEvent) bool
viewportMargins(self) QMargins
viewportSizeHint(self) QSize
visibleRegion(self) QRegion
visualRect(self, index: QModelIndex) QRect
visualRegionForSelection(self, selection: QItemSelection) QRegion
whatsThis(self) str
wheelEvent(self, a0: QWheelEvent)
width(self) int
widthMM(self) int
winId(self) PyQt6.sip.voidptr
window(self) QWidget
windowFilePath(self) str
windowFlags(self) Qt.WindowType
windowHandle(self) QWindow
windowIcon(self) QIcon
windowIconChanged

windowIconChanged(self, icon: QIcon) [signal]

windowIconText(self) str
windowIconTextChanged

windowIconTextChanged(self, iconText: str) [signal]

windowModality(self) Qt.WindowModality
windowOpacity(self) float
windowRole(self) str
windowState(self) Qt.WindowState
windowTitle(self) str
windowTitleChanged

windowTitleChanged(self, title: str) [signal]

windowType(self) Qt.WindowType
wordWrap(self) bool
x(self) int
y(self) int
class schrodinger.ui.qt.table_helper.UserRolesEnumMeta(cls, bases, classdict, offset=None, step_size=None, **kwds)

Bases: enum.EnumMeta

The metaclass for UserRolesEnum. See UserRolesEnum for documentation.

__contains__(member)
__init__(*args, **kwargs)
__len__()
mro()

Return a type’s method resolution order.

class schrodinger.ui.qt.table_helper.Column(title=None, tooltip=None, align=None, editable=False, checkable=False)

Bases: object

A table column. This class is intended to be used in the TableColumns enum.

__init__(title=None, tooltip=None, align=None, editable=False, checkable=False)
Parameters
  • title (str) – The column title to display in the header.

  • tooltip (str) – The tooltip to display when the user hovers over the column header.

  • align (int) – The alignment for cells in the column. If not given, Qt defaults to left alignment.

  • editable (bool) – Whether cells in the column are editable. (I.e., whether cells should be given the Qt.ItemIsEditable flag.)

  • checkable (bool) – Whether cells in the column can be checked or unchecked without opening an editor. (I.e., whether cells should be given the Qt.ItemIsUserCheckable flag.) Note that cells in checkable columns should provide data for Qt.CheckStateRole.

schrodinger.ui.qt.table_helper.connect_signals(model, signal_map)

Connect all specified signals

Parameters
  • model (QtCore.Qbject) – The model to connect signals from

  • signal_map (dict) – A dictionary of {signal name (str): slot}.

schrodinger.ui.qt.table_helper.disconnect_signals(model, signal_map)

Disconnect all specified signals

Parameters
  • model (QtCore.Qbject) – The model to disconnect signals from

  • signal_map (dict) – A dictionary of {signal name (str): slot}.

schrodinger.ui.qt.table_helper.PtRowBasedCustomRole

alias of schrodinger.ui.qt.table_helper.CustomRole

class schrodinger.ui.qt.table_helper.Include(value)

Bases: enum.IntEnum

An enumeration.

Only = 1
Toggle = 2
Range = 3
class schrodinger.ui.qt.table_helper.PtRowBasedTableModel

Bases: schrodinger.ui.qt.appframework2.maestro_callback.MaestroCallbackMixin, schrodinger.ui.qt.table_helper.RowBasedTableModel

A table model that keeps track of the inclusion state of an entry between the Project Table and the table’s inclusion checkboxes. The inclusion lock state is also respected by not allowing the user to uncheck a inclusion locked entry.

Note: An ‘Inclusion’ column must be defined by the Column class as well as an ‘EntryId’ CustomRole to utilize this class. Moreover, the row object class for the PtRowBasedTableModel subclass should define an entry_id attribute, otherwise subclass needs to define a data method for PtRowBasedCustomRole.EntryId.

Lastly, if the subclass of PtRowBasedTableModel requires any additional custom roles, it should use a UserRolesEnum that inherits from the above PtRowBasedCustomRole to avoid the risk of role number conflicts.

__init__()
onInclusionChanged()

Called when the workspace’s inclusion changes. The emitted dataChanged() signal forces the view to update each entry’s inclusion state from the workspace by calling data().

onProjectClosed()

Reset the table when a project is closed to avoid invalid data.

onProjectUpdated()

Reset the PT instance.

CHECKABLE_COLS = ()
COLUMN = None
class CheckIndexOption(value)

Bases: enum.Flag

An enumeration.

NoOption = 0
IndexIsValid = 1
DoNotUseParent = 2
ParentIsInvalid = 4
Column = None
EDITABLE_COLS = <object object>
HorizontalSortHint = 2
IGNORE_DELAYED_CALLBACKS = False
class LayoutChangeHint(value)

Bases: enum.Enum

An enumeration.

NoLayoutChangeHint = 0
VerticalSortHint = 1
HorizontalSortHint = 2
NO_DATA_CHANGED = <object object>
NoLayoutChangeHint = 0
ROW_CLASS = None
ROW_LIST_OFFSET = 0
SHOW_ROW_NUMBERS = False
UNEDITABLE_COLS = <object object>
VerticalSortHint = 1
af2SettingsGetValue()

This function adds support for the settings mixin. It allows to save table cell values in case this table is included in the settings panel. Returns list of rows if table model is of RowBasedTableModel class type.

Returns

list of rows in tbe table’s model.

Return type

list or None

af2SettingsSetValue(value)

This function adds support for the settings mixin. It allows to set table cell values when this table is included in the settings panel.

Parameters

value (list) – settings value, which is a list of row data here.

appendRow(*args, **kwargs)

Add a row to the table. All arguments are passed to ROW_CLASS initialization.

Returns

The row number of the new row

Return type

int

appendRowObject(row)

Add a row to the table.

Parameters

row (ROW_CLASS) – Row object to add to the table.

Returns

The row number of the new row

Return type

int

appendRowObjects(rows)

Add rows to the table.

Parameters

rows (ROW_CLASS) – Row objects to add to the table.

beginInsertColumns(self, parent: QModelIndex, first: int, last: int)
beginInsertRows(self, parent: QModelIndex, first: int, last: int)
beginMoveColumns(self, sourceParent: QModelIndex, sourceFirst: int, sourceLast: int, destinationParent: QModelIndex, destinationColumn: int) bool
beginMoveRows(self, sourceParent: QModelIndex, sourceFirst: int, sourceLast: int, destinationParent: QModelIndex, destinationRow: int) bool
beginRemoveColumns(self, parent: QModelIndex, first: int, last: int)
beginRemoveRows(self, parent: QModelIndex, first: int, last: int)
beginResetModel(self)
blockSignals(self, b: bool) bool
buddy(self, index: QModelIndex) QModelIndex
buildCallbackDicts()

Create a dictionary of all methods that have a maestro_callback decorator.

canDropMimeData(self, data: QMimeData, action: Qt.DropAction, row: int, column: int, parent: QModelIndex) bool
canFetchMore(self, parent: QModelIndex) bool
changePersistentIndex(self, from_: QModelIndex, to: QModelIndex)
changePersistentIndexList(self, from_: Iterable[QModelIndex], to: Iterable[QModelIndex])
checkIndex(self, index: QModelIndex, options: QAbstractItemModel.CheckIndexOption = QAbstractItemModel.CheckIndexOption.NoOption) bool
childEvent(self, a0: QChildEvent)
children(self) List[QObject]
clearItemData(self, index: QModelIndex) bool
closeEvent(event)
columnChanged(col_number)

Call this method when a specific column object has been modified. Will cause the view to redraw that column.

Parameters

col_number (int) – 0-indexed column number in the model.

columnCount(self, parent: QModelIndex = QModelIndex()) int
columnsAboutToBeInserted

columnsAboutToBeInserted(self, parent: QModelIndex, first: int, last: int) [signal]

columnsAboutToBeMoved

columnsAboutToBeMoved(self, sourceParent: QModelIndex, sourceStart: int, sourceEnd: int, destinationParent: QModelIndex, destinationColumn: int) [signal]

columnsAboutToBeRemoved

columnsAboutToBeRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

columnsInserted

columnsInserted(self, parent: QModelIndex, first: int, last: int) [signal]

columnsMoved

columnsMoved(self, parent: QModelIndex, start: int, end: int, destination: QModelIndex, column: int) [signal]

columnsRemoved

columnsRemoved(self, parent: QModelIndex, first: int, last: int) [signal]

connectNotify(self, signal: QMetaMethod)
createIndex(self, row: int, column: int, object: object = 0) QModelIndex
customEvent(self, a0: QEvent)
dataChanged

dataChanged(self, topLeft: QModelIndex, bottomRight: QModelIndex, roles: Iterable[int] = []) [signal]

decodeData(self, row: int, column: int, parent: QModelIndex, stream: QDataStream) bool
deleteLater(self)
destroyed

destroyed(self, object: typing.Optional[QObject] = None) [signal]

disconnect(a0: QMetaObject.Connection) bool
disconnect(self) None
disconnectNotify(self, signal: QMetaMethod)
dropMimeData(self, data: QMimeData, action: Qt.DropAction, row: int, column: int, parent: QModelIndex) bool
dumpObjectInfo(self)
dumpObjectTree(self)
dynamicPropertyNames(self) List[QByteArray]
encodeData(self, indexes: Iterable[QModelIndex], stream: QDataStream)
endInsertColumns(self)
endInsertRows(self)
endMoveColumns(self)
endMoveRows(self)
endRemoveColumns(self)
endRemoveRows(self)
endResetModel(self)
event(self, a0: QEvent) bool
eventFilter(self, a0: QObject, a1: QEvent) bool
fetchMore(self, parent: QModelIndex)
findChild(self, type: type, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) QObject
findChild(self, types: Tuple, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) QObject
findChildren(self, type: type, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, types: Tuple, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, type: type, re: QRegularExpression, options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, types: Tuple, re: QRegularExpression, options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
flags(index)

See Qt documentation for an method documentation.

formatFloat(value, role, digits, fmt='')

Format floating point values for display or sorting. If role is Qt.DisplayRole, then value will be returned as a string with the specified formatting. All other role values are assumed to be a sorting role and value will be returned unchanged.

Parameters
  • value (float) – The floating point value to format

  • role (int) – The Qt data role

  • digits (int) – The number of digits to include after the decimal point for Qt.DisplayRole

  • fmt (str) – Additional floating point formatting options

Returns

The formatted or unmodified value

Return type

str or float

hasChildren(self, parent: QModelIndex = QModelIndex()) bool
hasIndex(self, row: int, column: int, parent: QModelIndex = QModelIndex()) bool