schrodinger.ui.qt.mapperwidgets.plptable module

Framework to simplify creating Qt tables based on parameters.ParamListParam (PLP). A PLP is a type of list param where each element is itself a compound param. These can be naturally represented as tables where each item in the list is a row in the table, and individual subparams (fields) of the item are shown as cells in the row. See scripts/examples/models/plptable_gui.py for an example.

To create a plptable, you first need a model object with a ParamListParam that contains the source data. Each item in the list corresponds to a row in the table, and the cells in that row are based on the fields in that item. For example:

class Contact(parameters.CompoundParam):
    name = parameters.StringParam()
    phone_number = parameters.StringParam()
    email = parameters.StringParam()

class Model(parameters.ParamModel):
    contacts = parameters.ParamListParam(item_class=Contact)

In the simplest case, a PLPTableWidget can be instantiated with autospec=True, resulting in a very basic table with one column for each field in the PLP item class:

model = Model()
table = plptable.PLPTableWidget(plp=model.contacts, autospec=True)

Typically, it is desirable to customize the column contents and how the data in the list item is used to populate the columns. This is accomplished by sub- classing the TableSpec class to create a table specification. A table spec defines the columns in a table and provides the data methods used to populate the cells in each column.

In the example above, we might want to split the name into separate first and last name columns and turn the email into a hyperlink. This could be done with the following table spec:

class ContactTableSpec(plptable.TableSpec):
    @plptable.FieldColumn(Contact.name)
    def first_name(self, field):
        return field.split()[0]

    @plptable.FieldColumn(Contact.name)
    def last_name(self, field):
        return field.split()[-1]

    phone_number = plptable.FieldColumn(Contact.phone_number)

    @plptable.FieldColumn(Contact.email)
    def email(self, field):
        return f'<a href = "mailto: {field}">{field}</a>'

Notice that there are two ways to declare a column - either with a class attribute or a decorated data method.

Once a spec is defined, it can be applied to a PLPTableWidget using the setSpec method.

For more information, see TableSpec as well as the various column classes.

class schrodinger.ui.qt.mapperwidgets.plptable.FieldColumn(field, **kwargs)

Bases: schrodinger.ui.qt.mapperwidgets.plptable._BaseColumn

A FieldColumn is a column in which each cell receives the data from a single subparam (i.e. field) of one item in the PLP.

@FieldColumn(ItemClass.subparam) def my_data_method(self, field)

field: the value of the param field associated with this row
__init__(field, **kwargs)
Parameters:field (parameters.Param) – An abstract param representing the field this column represents or uses.
setData(all_rows, this_row, data, role=2)
data(all_rows, this_row, role=0)

Get the corresponding data for the column for the specified role.

data_method(*roles, role=0)

A decorator that marks a method to be used as a data method for the column. The method will be used as the data method whenever data for role or roles is requested.

Parameters:
  • roles – The roles that this data method should be used for. All positional arguments will be considered a part of roles and should be hashable.
  • role (Hashable) – Keyword-only argument. The role to assign to the data method. Usually enums are used for roles but theoretically any hashable object can be used.
generateColumn(table_spec)

Creates a copy of this column to be used as instance members of TableSpec instances. This allows separate instances and subclasses of a TableSpec to modify columns without altering the original class attribute, which is considered an “abstract” column.

Parameters:table_spec (TableSpec) – the table spec instance that will own the generated column instance.
getNumColumns(all_rows)

Get the number of columns this column has. Generally this is just one but some children classes define more than one column.

Parameters:all_rows (list(parameters.ParamModel)) – A list of the rows that make up the table.
Returns:The number of columns.

:rtype : int

headerData(all_rows, role=0)
headerData_method(*roles, role=0)

A decorator that marks a method to be used as a header data method for the column. The method will be used as the data method whenever data for role or roles is requested for the header row. Header data methods are passed the entire PLP.

Parameters:
  • roles – The roles that this data method should be used for. All positional arguments will be considered a part of roles and should be hashable.
  • role (Hashable) – Keyword-only argument. The role to assign to the data method. Usually enums are used for roles but theoretically any hashable object can be used.
setData_method(role=2)

A decorator for specifying a setData method for the column.

class schrodinger.ui.qt.mapperwidgets.plptable.ParamColumn(title=None, editable=False, tooltip=None, sample_data='')

Bases: schrodinger.ui.qt.mapperwidgets.plptable._BaseColumn

A ParamColumn is a column in which each cell receives one entire item from the PLP. It’s up to the data method to decide how to convert the item into something that can be used by the cell.

@ParamColumn() def my_data_method(self, this_row)

this_row: the model object for this row.
__init__(title=None, editable=False, tooltip=None, sample_data='')
Parameters:
  • title (str or None) – The title of the column. This string will be shown in the header cell of the column. If None, the title will default to the variable name the column is set to.
  • editable (bool) – Whether the cells in the column are editable. If editable is set to True, then double clicking a cell in the column will allow the user to input a string.
  • tooltip (str or None) – The string to populate the tooltip with.
data(all_rows, this_row, role=0)

Get the corresponding data for the column for the specified role.

data_method(*roles, role=0)

A decorator that marks a method to be used as a data method for the column. The method will be used as the data method whenever data for role or roles is requested.

Parameters:
  • roles – The roles that this data method should be used for. All positional arguments will be considered a part of roles and should be hashable.
  • role (Hashable) – Keyword-only argument. The role to assign to the data method. Usually enums are used for roles but theoretically any hashable object can be used.
generateColumn(table_spec)

Creates a copy of this column to be used as instance members of TableSpec instances. This allows separate instances and subclasses of a TableSpec to modify columns without altering the original class attribute, which is considered an “abstract” column.

Parameters:table_spec (TableSpec) – the table spec instance that will own the generated column instance.
getNumColumns(all_rows)

Get the number of columns this column has. Generally this is just one but some children classes define more than one column.

Parameters:all_rows (list(parameters.ParamModel)) – A list of the rows that make up the table.
Returns:The number of columns.

:rtype : int

headerData(all_rows, role=0)
headerData_method(*roles, role=0)

A decorator that marks a method to be used as a header data method for the column. The method will be used as the data method whenever data for role or roles is requested for the header row. Header data methods are passed the entire PLP.

Parameters:
  • roles – The roles that this data method should be used for. All positional arguments will be considered a part of roles and should be hashable.
  • role (Hashable) – Keyword-only argument. The role to assign to the data method. Usually enums are used for roles but theoretically any hashable object can be used.
setData(all_rows, this_row, data, role=2)
setData_method(role=2)

A decorator for specifying a setData method for the column.

class schrodinger.ui.qt.mapperwidgets.plptable.PLPColumn(title=None, editable=False, tooltip=None, sample_data='')

Bases: schrodinger.ui.qt.mapperwidgets.plptable._BaseColumn

A PLPColumn is a column in which each cell receives the entire PLP (i.e. the entire table’s data). This allows each cell’s contents to account for data in other rows in the table. It’s up to the data method to decide how to use the entire table data in each individual cell.

@PLPColumn() def my_data_method(self, all_rows, this_row):

all_rows: a list where each element is the model object for one row this_row: the model object for this row
__init__(title=None, editable=False, tooltip=None, sample_data='')
Parameters:
  • title (str or None) – The title of the column. This string will be shown in the header cell of the column. If None, the title will default to the variable name the column is set to.
  • editable (bool) – Whether the cells in the column are editable. If editable is set to True, then double clicking a cell in the column will allow the user to input a string.
  • tooltip (str or None) – The string to populate the tooltip with.
data(all_rows, this_row, role=0)

Get the corresponding data for the column for the specified role.

data_method(*roles, role=0)

A decorator that marks a method to be used as a data method for the column. The method will be used as the data method whenever data for role or roles is requested.

Parameters:
  • roles – The roles that this data method should be used for. All positional arguments will be considered a part of roles and should be hashable.
  • role (Hashable) – Keyword-only argument. The role to assign to the data method. Usually enums are used for roles but theoretically any hashable object can be used.
generateColumn(table_spec)

Creates a copy of this column to be used as instance members of TableSpec instances. This allows separate instances and subclasses of a TableSpec to modify columns without altering the original class attribute, which is considered an “abstract” column.

Parameters:table_spec (TableSpec) – the table spec instance that will own the generated column instance.
getNumColumns(all_rows)

Get the number of columns this column has. Generally this is just one but some children classes define more than one column.

Parameters:all_rows (list(parameters.ParamModel)) – A list of the rows that make up the table.
Returns:The number of columns.

:rtype : int

headerData(all_rows, role=0)
headerData_method(*roles, role=0)

A decorator that marks a method to be used as a header data method for the column. The method will be used as the data method whenever data for role or roles is requested for the header row. Header data methods are passed the entire PLP.

Parameters:
  • roles – The roles that this data method should be used for. All positional arguments will be considered a part of roles and should be hashable.
  • role (Hashable) – Keyword-only argument. The role to assign to the data method. Usually enums are used for roles but theoretically any hashable object can be used.
setData(all_rows, this_row, data, role=2)
setData_method(role=2)

A decorator for specifying a setData method for the column.

class schrodinger.ui.qt.mapperwidgets.plptable.ColumnSeries(title=None, editable=False, tooltip=None, sample_data='')

Bases: schrodinger.ui.qt.mapperwidgets.plptable.PLPColumn

A ColumnSeries is a dynamically generated series of columns for which each cell receives the entire plp, the item corresponding to cell’s row, and an index indicating which column in the ColumnSeries this cell belongs to.

The number of columns is determined by column_count decorated method.

def my_data_method(self, col_idx, all_rows, this_row)
col_idx: the relative index of the column with the column series all_rows: a list where each element is the model object for one row this_row: the model object for this row

Example:

class FamilyTableSpec(TableSpec):

    siblings = ColumnSeries()

    @siblings.column_count()
    def numColumns(self, all_rows):
        return max(len(row.siblings) for row in all_rows)

    @siblings.data_method()
    def getSibling(self, col_idx, all_rows, this_row):
        try:
            return this_row.siblings[col_idx]
        except IndexError:
            return ''
getNumColumns(all_rows)

Call the column_count method to see how many columns make up the series.

Parameters:all_rows (list(parameters.ParamModel)) – A list of the rows that make up the table.
Returns:The number of columns in the series

:rtype : int

column_count(len_func)

Decorator to designate a function to calculate the number of columns in the series.

Parameters:len_func (callable) – Function to calculate the number of columns. Should take in one argument: the ParamListParam representing the table.
data(col_idx, all_rows, this_row, role=0)

Get the corresponding data for the column for the specified role.

setData(all_rows, this_row, data, role=2)
headerData(col_idx, all_rows, role=0)
__init__(title=None, editable=False, tooltip=None, sample_data='')
Parameters:
  • title (str or None) – The title of the column. This string will be shown in the header cell of the column. If None, the title will default to the variable name the column is set to.
  • editable (bool) – Whether the cells in the column are editable. If editable is set to True, then double clicking a cell in the column will allow the user to input a string.
  • tooltip (str or None) – The string to populate the tooltip with.
data_method(*roles, role=0)

A decorator that marks a method to be used as a data method for the column. The method will be used as the data method whenever data for role or roles is requested.

Parameters:
  • roles – The roles that this data method should be used for. All positional arguments will be considered a part of roles and should be hashable.
  • role (Hashable) – Keyword-only argument. The role to assign to the data method. Usually enums are used for roles but theoretically any hashable object can be used.
generateColumn(table_spec)

Creates a copy of this column to be used as instance members of TableSpec instances. This allows separate instances and subclasses of a TableSpec to modify columns without altering the original class attribute, which is considered an “abstract” column.

Parameters:table_spec (TableSpec) – the table spec instance that will own the generated column instance.
headerData_method(*roles, role=0)

A decorator that marks a method to be used as a header data method for the column. The method will be used as the data method whenever data for role or roles is requested for the header row. Header data methods are passed the entire PLP.

Parameters:
  • roles – The roles that this data method should be used for. All positional arguments will be considered a part of roles and should be hashable.
  • role (Hashable) – Keyword-only argument. The role to assign to the data method. Usually enums are used for roles but theoretically any hashable object can be used.
setData_method(role=2)

A decorator for specifying a setData method for the column.

class schrodinger.ui.qt.mapperwidgets.plptable.TableSpec

Bases: schrodinger.models.parameters.ParamModel

A class that represents the specification of a PLPTable. The spec’s role is to specify what columns to display, in what order, and with what data.

To create a table spec, subclass TableSpec and add columns and data methods to define the behavior of the table.

__init__()

Initialize self. See help(type(self)) for accurate signature.

columns

A Param to represent lists. Values of this param will have a mutated signal that will be emitted whenever any mutation method is called.

The constructor optionally takes a item_class keyword argument to specify what type of class the items in the list will be. This information will be used for jsonifying the list if specified.

headerData(col_idx, all_rows, role)
data(col_idx, all_rows, this_row, role)
setData(col_idx, all_rows, this_row, value, role=2)
getColumn(col_idx, all_rows)
getNumColumns(all_rows)
DataClass

alias of builtins.object

classmethod addSubParam(name, param, update_owner=True)
blockSignals(self, bool) → bool
block_signal_propagation()
childEvent(self, QChildEvent)
children(self) → List[QObject]
columnsChanged
columnsReplaced
classmethod configureParam()

Override this class method to set up the abstract param class (e.g. setParamReference on child params.)

connectNotify(self, QMetaMethod)
customEvent(self, QEvent)
classmethod defaultValue(*args, **kwargs)
deleteLater(self)
destroyed

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

disconnect(self)
disconnectNotify(self, QMetaMethod)
dumpObjectInfo(self)
dumpObjectTree(self)
dynamicPropertyNames(self) → List[QByteArray]
event(self, QEvent) → bool
eventFilter(self, QObject, QEvent) → bool
findChild(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → QObject

findChild(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> QObject

findChildren(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → List[QObject]

findChildren(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject]

classmethod fromJson(json_obj)

A factory method which constructs a new object from a given dict loaded from a json string or file.

Parameters:json_obj (dict) – A json-loaded dictionary to create an object from.
Returns:An instance of this class.

:rtype : cls

classmethod fromJsonImplementation(json_dict)

Sets the value of this compound param value object from a JSON dict.

getAbstractParam(*args, **kwargs)
classmethod getJsonBlacklist()

Override to customize what params are serialized.

Implementations should return a list of abstract params that should be omitted from serialization.

..NOTE
Returned abstract params must be direct child params of cls, e.g. cls.name, not cls.coord.x.
classmethod getParamSignal(*args, **kwargs)
classmethod getParamValue(*args, **kwargs)
classmethod getSubParam(name)

Get the value of a subparam using the string name:

c = Coord()
assert c.getSubParam('x') == 0

Note

Using the string name to accss params is generally discouraged, but can be useful for serializing/deserializing param data.

Parameters:name (str) – The name of the subparam to get the value for.
classmethod getSubParams()

Return a dictionary mapping subparam names to their values.

get_version()

Method to get the version of a particular object. Defaults to the current version of mmshare. This class can be overridden for custom versioning behavior.

inherits(self, str) → bool
initAbstract()
initConcrete()

Override to customize initialization of concrete params.

initializeValue()

Override to dynamically set up the default value of the param. Useful for default values that are determined at runtime. This is called any time the param is reset.

installEventFilter(self, QObject)
classmethod isAbstract()

Whether the param is an “abstract” param.

isDefault(*args, **kwargs)
isSignalConnected(self, QMetaMethod) → bool
isWidgetType(self) → bool
isWindowType(self) → bool
killTimer(self, int)
metaObject(self) → QMetaObject
moveToThread(self, QThread)
objectName(self) → str
objectNameChanged

objectNameChanged(self, str) [signal]

classmethod owner()

Get the owner of the param:

# Can be called on an abstract param:
assert Coord.x.owner() == Coord

# ...or on an instance of a CompoundParam
a = Atom()
assert a.coord.owner() == a
classmethod ownerChain()

Returns a list of param owners starting from the toplevel param and ending with self. Examples:

foo.bar.atom.coord.ownerChain() will return [foo, bar, atom, coord] where every item is a concrete param.

Foo.bar.atom.coord.x.ownerChain() will return [Foo, Foo.bar, Foo.atom.coord, Foo.atom.coord.x] where every item is an abstract params.

classmethod paramName()

Get the name of the param:

# Can be called on an abstract param:
print(Coord.x.paramName()) # 'x'

# ...or on an instance of a CompoundParam
a = Atom()
a.coord.paramName() # 'coord'
parent(self) → QObject
property(self, 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, PYQT_SIGNAL) → int
removeEventFilter(self, QObject)
reset(*args, **kwargs)
sender(self) → QObject
senderSignalIndex(self) → int
setObjectName(self, str)
classmethod setParamValue(*args, **kwargs)
setParent(self, QObject)
setProperty(self, str, Any) → bool
classmethod setReference(param1, param2)

Call this class method from configureParam to indicate that two params should be kept in sync. The initial values will start with the default value of param1. Example:

class Square(CompoundParam):
    width: float = 5
    height: float = 10

    @classmethod
    def configureParam(cls):
        super().configureParam()
        cls.setReference(cls.width, cls.height)

square = Square()
assert square.width == square.height == 5 # Default value of width
                                          # takes priority
square.height = 7
assert square.width == square.height == 7
square.width = 6
assert square.width == square.height == 6
Parameters:
  • param1 – The first abstract param to keep synced
  • param2 – The second abstract param. After instantiation, this param will take on the value of param1.
setValue(*args, **kwargs)
signalsBlocked(self) → bool
skip_eq_check()
startTimer(self, int, timerType: Qt.TimerType = Qt.CoarseTimer) → int
staticMetaObject = <PyQt5.QtCore.QMetaObject object>
thread(self) → QThread
timerEvent(self, QTimerEvent)
toDict(*args, **kwargs)
toJson(_mark_version=True)

Create and returns a data structure made up of jsonable items.

Return type:An instance of one the classes from NATIVE_JSON_DATATYPES
toJsonImplementation(*args, **kwargs)
tr(self, str, disambiguation: str = None, n: int = -1) → str
valueChanged
class schrodinger.ui.qt.mapperwidgets.plptable.PLPTableWidget(*args, spec=None, autospec=False, plp=None, **kwargs)

Bases: schrodinger.models.mappers.TargetMixin, schrodinger.ui.qt.basewidgets.BaseWidget

A table widget for displaying data in a ParamListParam. Compatible with mappers.TargetParamMapper and mappers.MapperMixin.

Typically this class is instantiated directly, and defining the behavior of the table is done by creating a custom TableSpec subclass.

__init__(*args, spec=None, autospec=False, plp=None, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

spec
setSpec(new_spec)

Apply a new table specification to this table.

Parameters:new_spec (TableSpec or None) – the new table spec
initSetUp()

Creates widget from ui and stores it ui_widget.

Suggested subclass use: create and initialize subwidgets, and connect signals.

initLayOut()

Create a vertical layout for the widget (widget_layout) and populate it with two vertical sub-layouts: main_layout and bottom_layout.

If the user has specified the ui data member, insert the resultant ui_widget into main_layout.

If the widget already has a layout defined, this method will produce a warning (but not a traceback). main_layout and bottom_layout will be inserted into the existing widget layout, which will not be the same as widget_layout. It is therefore recommended that this mixin is used only with widgets that do not already have a layout.

Suggested subclass use: create, initialize, and populate layouts.

addProxy(proxy_model)
targetGetValue()

Implementation of an abstract method in TargetMixin.

targetSetValue(value)

Implementation of an abstract method in TargetMixin.

Creates a table model based on the spec, loads the PLP as data, and sets the newly created table model on the view.

makeAutoSpec(plp)
loadPLP(plp)

Replace the current contents of the table PLP with the contents of the supplied plp argument.

Parameters:plp (parameters.ParamListParam) – a ParamListParam of the same type that is used as the domain model for this table
setPLP(plp)

Set the supplied PLP as the new model for the table.

Parameters:plp (list(parameters.ParamModel)) – The PLP representing the table data.
selectedParams()
removeSelectedParams()

Delete deletes parameters if they are selected in the table.

setSelectedParams(params)

Selects the table rows corresponding to the specified params.

Parameters:params – a list of params to select
removeRow(row_num)
exportToCsv(filename)
class BtnPos

Bases: enum.IntEnum

An enumeration.

Left = 0
Middle = 1
Right = 2
DrawChildren = 2
DrawWindowBackground = 1
IgnoreMask = 4
class PaintDeviceMetric

Bases: int

__init__ = <method-wrapper '__init__' of sip.enumtype object at 0x1409398>
PdmDepth = 6
PdmDevicePixelRatio = 11
PdmDevicePixelRatioScaled = 12
PdmDpiX = 7
PdmDpiY = 8
PdmHeight = 2
PdmHeightMM = 4
PdmNumColors = 5
PdmPhysicalDpiX = 9
PdmPhysicalDpiY = 10
PdmWidth = 1
PdmWidthMM = 3
class RenderFlag

Bases: int

__init__ = <method-wrapper '__init__' of sip.enumtype object at 0x1750518>
class RenderFlags

Bases: sip.simplewrapper

QWidget.RenderFlags(Union[QWidget.RenderFlags, QWidget.RenderFlag]) QWidget.RenderFlags(QWidget.RenderFlags)

__init__

Initialize self. See help(type(self)) for accurate signature.

SHOW_AS_WINDOW = False
class StdBtn

Bases: enum.IntEnum

An enumeration.

Cancel = 1
Help = 3
Ok = 0
Reset = 2
acceptDrops(self) → bool
accepted
accessibleDescription(self) → str
accessibleName(self) → str
actionEvent(self, QActionEvent)
actions(self) → List[QAction]
activateWindow(self)
addAction(self, QAction)
addActions(self, Iterable[QAction])
adjustSize(self)
autoFillBackground(self) → bool
auto_update_model = True
auto_update_target = True
backgroundRole(self) → QPalette.ColorRole
baseSize(self) → QSize
blockSignals(self, bool) → bool
changeEvent(self, QEvent)
childAt(self, QPoint) → QWidget

childAt(self, int, int) -> QWidget

childEvent(self, QChildEvent)
children(self) → List[QObject]
childrenRect(self) → QRect
childrenRegion(self) → QRegion
clearFocus(self)
clearMask(self)
close(self) → bool
closeEvent(event)

Ensures proper handling of OK, Cancel, and [X] button clicks

colorCount(self) → int
connectNotify(self, QMetaMethod)
contentsMargins(self) → QMargins
contentsRect(self) → QRect
contextMenuEvent(self, QContextMenuEvent)
contextMenuPolicy(self) → Qt.ContextMenuPolicy
create(self, window: sip.voidptr = 0, initializeWindow: bool = True, destroyOldWindow: bool = True)
createWindowContainer(QWindow, parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = 0) → QWidget
cursor(self) → QCursor
customContextMenuRequested

customContextMenuRequested(self, QPoint) [signal]

customEvent(self, QEvent)
debug()
deleteLater(self)
depth(self) → int
destroy(self, destroyWindow: bool = True, destroySubWindows: bool = True)
destroyed

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

devType(self) → int
devicePixelRatio(self) → int
devicePixelRatioF(self) → float
devicePixelRatioFScale() → float
disconnect(self)
disconnectNotify(self, QMetaMethod)
dragEnterEvent(self, QDragEnterEvent)
dragLeaveEvent(self, QDragLeaveEvent)
dragMoveEvent(self, QDragMoveEvent)
dropEvent(self, QDropEvent)
dumpObjectInfo(self)
dumpObjectTree(self)
dynamicPropertyNames(self) → List[QByteArray]
effectiveWinId(self) → sip.voidptr
ensurePolished(self)
enterEvent(self, QEvent)
error(*args, **kwargs)

Shows a popup error message box. For parameter documentation see messagebox.MessageBox.

event(self, QEvent) → bool
eventFilter(self, QObject, QEvent) → bool
find(sip.voidptr) → QWidget
findChild(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → QObject

findChild(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> QObject

findChildren(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → List[QObject]

findChildren(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject]

focusInEvent(self, QFocusEvent)
focusNextChild(self) → bool
focusNextPrevChild(self, bool) → bool
focusOutEvent(self, 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
forgetMessageBoxResponse(key)

Forgets any previously saved response that was stored via a save_response_key.

Parameters:key – the key for the response to forget
frameGeometry(self) → QRect
frameSize(self) → QSize
geometry(self) → QRect
getContentsMargins(self) → Tuple[int, int, int, int]
grab(self, rectangle: QRect = QRect(QPoint(0, 0), QSize(-1, -1))) → QPixmap
grabGesture(self, Qt.GestureType, flags: Union[Qt.GestureFlags, Qt.GestureFlag] = Qt.GestureFlags())
grabKeyboard(self)
grabMouse(self)

grabMouse(self, Union[QCursor, Qt.CursorShape])

grabShortcut(self, Union[QKeySequence, QKeySequence.StandardKey, str, int], context: Qt.ShortcutContext = Qt.WindowShortcut) → int
graphicsEffect(self) → QGraphicsEffect
graphicsProxyWidget(self) → QGraphicsProxyWidget
hasFocus(self) → bool
hasHeightForWidth(self) → bool
hasMouseTracking(self) → bool
hasTabletTracking(self) → bool
height(self) → int
heightForWidth(self, int) → int
heightMM(self) → int
hide(self)
hideEvent(self, QHideEvent)
info(*args, **kwargs)

Shows a popup information message box. For parameter documentation see messagebox.MessageBox.

inherits(self, str) → bool
initFinalize()

Suggested subclass use: perform any remaining initialization.

initPainter(self, QPainter)
initSetDefaults()

Set widget to its default state. If the widget uses a model/mapper, it’s preferable to reset the widget state by resetting the model.

initSetOptions()

Suggested subclass use: set instance variables, excluding layouts and subwidgets.

inputMethodEvent(self, QInputMethodEvent)
inputMethodHints(self) → Qt.InputMethodHints
inputMethodQuery(self, Qt.InputMethodQuery) → Any
insertAction(self, QAction, QAction)
insertActions(self, QAction, Iterable[QAction])
installEventFilter(self, QObject)
isActiveWindow(self) → bool
isAncestorOf(self, QWidget) → bool
isEnabled(self) → bool
isEnabledTo(self, QWidget) → bool
isFullScreen(self) → bool
isHidden(self) → bool
isLeftToRight(self) → bool
isMaximized(self) → bool
isMinimized(self) → bool
isModal(self) → bool
isRightToLeft(self) → bool
isSignalConnected(self, QMetaMethod) → bool
isVisible(self) → bool
isVisibleTo(self, QWidget) → bool
isWidgetType(self) → bool
isWindow(self) → bool
isWindowModified(self) → bool
isWindowType(self) → bool
keyPressEvent(self, QKeyEvent)
keyReleaseEvent(self, QKeyEvent)
keyboardGrabber() → QWidget
killTimer(self, int)
layout(self) → QLayout
layoutDirection(self) → Qt.LayoutDirection
leaveEvent(self, QEvent)
locale(self) → QLocale
logicalDpiX(self) → int
logicalDpiY(self) → int
lower(self)
mapFrom(self, QWidget, QPoint) → QPoint
mapFromGlobal(self, QPoint) → QPoint
mapFromParent(self, QPoint) → QPoint
mapTo(self, QWidget, QPoint) → QPoint
mapToGlobal(self, QPoint) → QPoint
mapToParent(self, QPoint) → QPoint
mask(self) → QRegion
maximumHeight(self) → int
maximumSize(self) → QSize
maximumWidth(self) → int
metaObject(self) → QMetaObject
metric(self, QPaintDevice.PaintDeviceMetric) → int
minimumHeight(self) → int
minimumSize(self) → QSize
minimumSizeHint(self) → QSize
minimumWidth(self) → int
mouseDoubleClickEvent(self, QMouseEvent)
mouseGrabber() → QWidget
mouseMoveEvent(self, QMouseEvent)
mousePressEvent(self, QMouseEvent)
mouseReleaseEvent(self, QMouseEvent)
move(self, QPoint)

move(self, int, int)

moveEvent(self, QMoveEvent)
moveToThread(self, QThread)
nativeEvent(self, Union[QByteArray, bytes, bytearray], sip.voidptr) → Tuple[bool, int]
nativeParentWidget(self) → QWidget
nextInFocusChain(self) → QWidget
normalGeometry(self) → QRect
objectName(self) → str
objectNameChanged

objectNameChanged(self, str) [signal]

overrideWindowFlags(self, Union[Qt.WindowFlags, Qt.WindowType])
overrideWindowState(self, Union[Qt.WindowStates, Qt.WindowState])
paintEngine(self) → QPaintEngine
paintEvent(self, QPaintEvent)
paintingActive(self) → bool
palette(self) → QPalette
parent(self) → QObject
parentWidget(self) → QWidget
physicalDpiX(self) → int
physicalDpiY(self) → int
pos(self) → QPoint
previousInFocusChain(self) → QWidget
property(self, 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.

question(*args, **kwargs)

Shows a popup question message box. For parameter documentation see messagebox.QuestionMessageBox.

raise_(self)
receivers(self, PYQT_SIGNAL) → int
rect(self) → QRect
releaseKeyboard(self)
releaseMouse(self)
releaseShortcut(self, int)
removeAction(self, QAction)
removeEventFilter(self, QObject)
render(self, QPaintDevice, targetOffset: QPoint = QPoint(), sourceRegion: QRegion = QRegion(), flags: Union[QWidget.RenderFlags, QWidget.RenderFlag] = QWidget.RenderFlags(QWidget.DrawWindowBackground|QWidget.DrawChildren))

render(self, QPainter, targetOffset: QPoint = QPoint(), sourceRegion: QRegion = QRegion(), flags: Union[QWidget.RenderFlags, QWidget.RenderFlag] = QWidget.RenderFlags(QWidget.DrawWindowBackground|QWidget.DrawChildren))

repaint(self)

repaint(self, int, int, int, int) repaint(self, QRect) repaint(self, QRegion)

reportValidation(results)

Present validation messages to the user. This is an implmentation of the ValidationMixin interface and does not need to be called directly.

This method assumes that error and question methods have been defined in the subclass, as in e.g. widget_mixins.MessageBoxMixin.

Parameters:results (validation.ValidationResults) – Set of validation results generated by validate
Returns:if True, there were no validation errors and the user decided to continue despite any warnings. If False, there was at least one validation error or the user decided to abort when faced with a warning.
resize(self, QSize)

resize(self, int, int)

resizeEvent(self, QResizeEvent)
restoreGeometry(self, Union[QByteArray, bytes, bytearray]) → bool
run(blocking=False, modal=False, finished_callback=None)

Show this widget, while optionally blocking, making the widget window modal, and registering a callback for when the widget is closed again.

Parameters:
  • blocking (bool) – if True, block progress in the calling method until the widget is closed again.
  • modal (bool) – if True, open this widget as window modal. Otherwise, open this widget as nonmodal.
  • finished_callback (a callable object) – an object that will be called with no arguments when this widget is closed.
runValidation(silent=False, validate_children=True, stop_on_fail=True)

Runs validation and reports the results (unless run silently).

Parameters:
  • silent (bool) – run without any reporting (i.e. error messages to the user). This is useful if we want to programmatically test validity. Changes return value of this method from ValidationResults to a boolean.
  • validate_children (bool) – run validation on all child objects. See _validateChildren for documentation on what this entails.
  • stop_on_fail (bool) – stop validation when first failure is encountered
Returns:

if silent is False, returns the validation results. If silent is True, returns a boolean generated by reportValidation.

Return type:

ValidationResults or bool

saveGeometry(self) → QByteArray
scroll(self, int, int)

scroll(self, int, int, QRect)

sender(self) → QObject
senderSignalIndex(self) → int
setAcceptDrops(self, bool)
setAccessibleDescription(self, str)
setAccessibleName(self, str)
setAttribute(self, Qt.WidgetAttribute, on: bool = True)
setAutoFillBackground(self, bool)
setBackgroundRole(self, QPalette.ColorRole)
setBaseSize(self, int, int)

setBaseSize(self, QSize)

setContentsMargins(self, int, int, int, int)

setContentsMargins(self, QMargins)

setContextMenuPolicy(self, Qt.ContextMenuPolicy)
setCursor(self, Union[QCursor, Qt.CursorShape])
setDisabled(self, bool)
setEnabled(self, bool)
setFixedHeight(self, int)
setFixedSize(self, QSize)

setFixedSize(self, int, int)

setFixedWidth(self, int)
setFocus(self)

setFocus(self, Qt.FocusReason)

setFocusPolicy(self, Qt.FocusPolicy)
setFocusProxy(self, QWidget)
setFont(self, QFont)
setForegroundRole(self, QPalette.ColorRole)
setGeometry(self, QRect)

setGeometry(self, int, int, int, int)

setGraphicsEffect(self, QGraphicsEffect)
setHidden(self, bool)
setInputMethodHints(self, Union[Qt.InputMethodHints, Qt.InputMethodHint])
setLayout(self, QLayout)
setLayoutDirection(self, Qt.LayoutDirection)
setLocale(self, QLocale)
setMask(self, QBitmap)

setMask(self, QRegion)

setMaximumHeight(self, int)
setMaximumSize(self, int, int)

setMaximumSize(self, QSize)

setMaximumWidth(self, int)
setMinimumHeight(self, int)
setMinimumSize(self, int, int)

setMinimumSize(self, QSize)

setMinimumWidth(self, int)
setMouseTracking(self, bool)
setObjectName(self, str)
setPalette(self, QPalette)
setParent(self, QWidget)

setParent(self, QWidget, Union[Qt.WindowFlags, Qt.WindowType])

setProperty(self, str, Any) → bool
setShortcutAutoRepeat(self, int, enabled: bool = True)
setShortcutEnabled(self, int, enabled: bool = True)
setSizeIncrement(self, int, int)

setSizeIncrement(self, QSize)

setSizePolicy(self, QSizePolicy)

setSizePolicy(self, QSizePolicy.Policy, QSizePolicy.Policy)

setStatusTip(self, str)
setStyle(self, QStyle)
setStyleSheet(self, str)
setTabOrder(QWidget, QWidget)
setTabletTracking(self, bool)
setToolTip(self, str)
setToolTipDuration(self, int)
setUpdatesEnabled(self, bool)
setVisible(set_visible)
setWhatsThis(self, str)
setWidgetLayout()

Set the widget layout

setWindowFilePath(self, str)
setWindowFlag(self, Qt.WindowType, on: bool = True)
setWindowFlags(flags=None)
setWindowFlagsForRun()
setWindowIcon(self, QIcon)
setWindowIconText(self, str)
setWindowModality(self, Qt.WindowModality)
setWindowModified(self, bool)
setWindowOpacity(self, float)
setWindowRole(self, str)
setWindowState(self, Union[Qt.WindowStates, Qt.WindowState])
setWindowTitle(self, str)
sharedPainter(self) → QPainter
show()

Override the show method to clear and previous value of self.accepted

showEvent(self, QShowEvent)
showFullScreen(self)
showMaximized(self)
showMinimized(self)
showNormal(self)
signalsBlocked(self) → bool
size(self) → QSize
sizeHint(self) → QSize
sizeIncrement(self) → QSize
sizePolicy(self) → QSizePolicy
sshowMessageBox(*args, **kwargs)

Shows a popup message box. For parameter documentation see messagebox.MessageBox.

stackUnder(self, QWidget)
startTimer(self, int, timerType: Qt.TimerType = Qt.CoarseTimer) → int
staticMetaObject = <PyQt5.QtCore.QMetaObject object>
statusTip(self) → str
style(self) → QStyle
styleSheet(self) → str
tabletEvent(self, QTabletEvent)
targetValueChanged
testAttribute(self, Qt.WidgetAttribute) → bool
thread(self) → QThread
timerEvent(self, QTimerEvent)
toolTip(self) → str
toolTipDuration(self) → int
tr(self, str, disambiguation: str = None, n: int = -1) → str
ui_module = None
underMouse(self) → bool
ungrabGesture(self, Qt.GestureType)
unsetCursor(self)
unsetLayoutDirection(self)
unsetLocale(self)
update(self)

update(self, QRect) update(self, QRegion) update(self, int, int, int, int)

updateGeometry(self)
updateMicroFocus(self)
updatesEnabled(self) → bool
visibleRegion(self) → QRegion
warning(*args, **kwargs)

Shows a popup warning message box. For parameter documentation see messagebox.MessageBox.

whatsThis(self) → str
wheelEvent(self, QWheelEvent)
width(self) → int
widthMM(self) → int
winId(self) → sip.voidptr
window(self) → QWidget
windowFilePath(self) → str
windowFlags(self) → Qt.WindowFlags
windowHandle(self) → QWindow
windowIcon(self) → QIcon
windowIconChanged

windowIconChanged(self, QIcon) [signal]

windowIconText(self) → str
windowIconTextChanged

windowIconTextChanged(self, str) [signal]

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

windowTitleChanged(self, str) [signal]

windowType(self) → Qt.WindowType
x(self) → int
y(self) → int