schrodinger.ui.qt.widgetmixins.basicmixins module

class schrodinger.ui.qt.widgetmixins.basicmixins.InitMixin(*args, **kwargs)

Bases: object

A mixin that breaks up widget initialization into several discrete steps and provides some basic formatting boilerplate. Each of these steps is meant to be overridden during subclassing so that

  1. The initialization is organized
  2. Repetition when subclassing is minimized, because the five provided initialization methods can be overridden rather than all of __init__.

Expects to be inherited by a QtWidgets.QWidget.

To install a Qt Designer ui module on the widget, set the class variable ui_module to the *_ui module created by pyuic.

ui_module = None
__init__(*args, **kwargs)

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

initSetOptions()

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

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.

setWidgetLayout()

Set the widget layout

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.

initFinalize()

Suggested subclass use: perform any remaining initialization.

class schrodinger.ui.qt.widgetmixins.basicmixins.ExecutionMixin(*args, **kwargs)

Bases: object

A mixin that facilitates the use of the run method, which provides a flexible means of opening the inheriting widget.

Expects to be inherited by a QtWidgets.QWidget.

self._return_value is provided as a way to give self.run(blocking=True) a return value.

Variables:SHOW_AS_WINDOW (bool) – Whether the widget is intended to be shown as a window (e.g. the widget is dialog-like). If you create a child widget using this class and unexpectedly see its contents inside the parent, set this to True.
SHOW_AS_WINDOW = False
__init__(*args, **kwargs)

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

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.
setWindowFlagsForRun()
setWindowFlags(flags=None)
closeEvent(event)

When this widget is closed, end the blocking effect (if in place) and call the callback (if supplied), removing both afterward.

setVisible(set_visible)
debug()
class schrodinger.ui.qt.widgetmixins.basicmixins.MessageBoxMixin

Bases: object

A mixin that facilitates the creation of several common types of message boxes as children of the inheriting class.

Expects to be inherited by a QtWidgets.QWidget.

sshowMessageBox(*args, **kwargs)

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

warning(*args, **kwargs)

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

error(*args, **kwargs)

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

info(*args, **kwargs)

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

question(*args, **kwargs)

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

forgetMessageBoxResponse(key)

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

Parameters:key – the key for the response to forget
__init__

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

class schrodinger.ui.qt.widgetmixins.basicmixins.BottomButtonMixin(*args, **kwargs)

Bases: object

Provides an interface for quickly adding buttons to the bottom of the widget. This includes standard buttons like OK, Cancel and Help, as well as custom buttons, specified with the appmethods.custom decorator.

Requires InitMixin. Works with ExecutionMixin, if present, such that value of self.accepted will be returned from self.run(blocking=True)

To add standard buttons other than “Help”, set self.std_btn_specs with keys from the BottomButtonMixin.StdBtn enum and values which are a tuple of (slot, text, tooltip).

slot: a function that will be called when the button is clicked. The slot provides custom functionality on top of the standard behavior of the button. Returning False will abort the default behavior. Use None for the slot if there is no custom behavior to implement.

text: customized button text to override the standard text (“OK”, “Cancel”, etc.)

tooltip: tooltip text

All parts of the spec are optional, and the tuple can be any length up to 3. As a convenience, in lieu of a tuple of length 1, the slot itself can be directly supplied as the spec. Examples:

self.std_btn_specs = {self.StdBtn.Ok : (self.onOkClicked, 'Run'),
                      self.StdBtn.Cancel : self.onCancelClicked,
                      self.StdBtn.Reset : None}

To get the help button to appear, just set self.help_topic to the appropriate string. No button spec is required for the help button.

To add custom buttons, decorate the intended slot with:

@appmethods.custom('Custom button text', order=1, tooltip=None)
def mySlot(self):
    ...

The order and tooltip arguments are optional. Custom buttons will be arranged from left to right according to the order value.

class StdBtn

Bases: enum.IntEnum

An enumeration.

Ok = 0
Cancel = 1
Reset = 2
Help = 3
class BtnPos

Bases: enum.IntEnum

An enumeration.

Left = 0
Middle = 1
Right = 2
__init__(*args, **kwargs)

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

initSetUp()
initLayOut()
accepted
show()

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

closeEvent(event)

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

class schrodinger.ui.qt.widgetmixins.basicmixins.BaseMixinCollection(*args, **kwargs)

Bases: schrodinger.ui.qt.widgetmixins.basicmixins.BottomButtonMixin, schrodinger.ui.qt.widgetmixins.basicmixins.InitMixin, schrodinger.ui.qt.widgetmixins.basicmixins.ExecutionMixin, schrodinger.ui.qt.widgetmixins.basicmixins.MessageBoxMixin, schrodinger.ui.qt.appframework2.validation.ValidationMixin

A mixin that combines other widget mixins for convenience. See individual mixin classes for full documentation: InitMixin, ExecutionMixin, MessageBoxMixin, validation.ValidationMixin

class BtnPos

Bases: enum.IntEnum

An enumeration.

Left = 0
Middle = 1
Right = 2
SHOW_AS_WINDOW = False
class StdBtn

Bases: enum.IntEnum

An enumeration.

Cancel = 1
Help = 3
Ok = 0
Reset = 2
__init__(*args, **kwargs)

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

accepted
closeEvent(event)

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

debug()
error(*args, **kwargs)

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

forgetMessageBoxResponse(key)

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

Parameters:key – the key for the response to forget
info(*args, **kwargs)

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

initFinalize()

Suggested subclass use: perform any remaining initialization.

initLayOut()
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.

initSetUp()
question(*args, **kwargs)

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

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.
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

setVisible(set_visible)
setWidgetLayout()

Set the widget layout

setWindowFlags(flags=None)
setWindowFlagsForRun()
show()

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

sshowMessageBox(*args, **kwargs)

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

ui_module = None
warning(*args, **kwargs)

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

class schrodinger.ui.qt.widgetmixins.basicmixins.DockableMixinCollection(*args, **kwargs)

Bases: schrodinger.ui.qt.widgetmixins.basicmixins.BaseMixinCollection

A mixin collection for dockable widgets.

SHOW_AS_WINDOW = False
setWidgetLayout()

Set the widget layout. A QDockWidget’s layout does not allow nested layouts so we create a container widget to hold the widget layout.

setWindowFlagsForRun()

Don’t set any window flags for run

class BtnPos

Bases: enum.IntEnum

An enumeration.

Left = 0
Middle = 1
Right = 2
class StdBtn

Bases: enum.IntEnum

An enumeration.

Cancel = 1
Help = 3
Ok = 0
Reset = 2
__init__(*args, **kwargs)

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

accepted
closeEvent(event)

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

debug()
error(*args, **kwargs)

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

forgetMessageBoxResponse(key)

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

Parameters:key – the key for the response to forget
info(*args, **kwargs)

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

initFinalize()

Suggested subclass use: perform any remaining initialization.

initLayOut()
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.

initSetUp()
question(*args, **kwargs)

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

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.
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

setVisible(set_visible)
setWindowFlags(flags=None)
show()

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

sshowMessageBox(*args, **kwargs)

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

ui_module = None
warning(*args, **kwargs)

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

schrodinger.ui.qt.widgetmixins.basicmixins.setup_panel_ui(panel)

Installs a ui module onto the specified panel.

  • If the panel subclasses a Ui_Form, the class itself will setup the ui_widget.
  • If the panel has a “ui” value set that is a Ui_Form instance, that will be used to populate the ui_widget.
  • If the panel has a “ui” value set that is a ui module containing Ui_Form, the Ui_Form will be instantiated and used to populate the ui_widget.
Parameters:panel (PanelMixin) – the panel to setup ui on
Raises:TypeError – if the panel has a “ui” value set that is neither a Ui_Form instance nor a ui module
schrodinger.ui.qt.widgetmixins.basicmixins.is_dockable(window)
schrodinger.ui.qt.widgetmixins.basicmixins.is_docked(window)