schrodinger.application.matsci.mswidgets module¶
Contains widgets that are useful in MatSci panels.
Copyright Schrodinger, LLC. All rights reserved.
-
class
schrodinger.application.matsci.mswidgets.CompactSolventSelector(parent=None, layout=None, keywords=None, **extra_args)¶ Bases:
PyQt5.QtWidgets.QFrameA single line of widgets that displays the currently chosen solvent and a button that will open a dialog allowing a new solvent model/solvent choice. Tracks the necessary Jaguar keywords to implement the user’s choice.
-
chooseSolvent()¶ Open a dialog that lets the user choose solvent parameters (model, solvent, solvent properties) and store the choices
-
getKeystring()¶ Get a string containing all the keywords specified by the user’s choices
Return type: str Returns: A string containg keywords that define the user’s choices. An empty string is returned if no model has been selected
-
getSolventName()¶ Get the name of the chosen solvent
Return type: str Returns: The user-facing name of the chosen solvent, or NO_SOLVENT if no model has been chosen
-
isSolventModelUsed()¶ Has a solvent model been chosen?
Return type: bool Returns: True if yes, False if no
-
reset()¶ Reset all the widgets to their original values
-
solventKeywordsChanged(keywords, options={})¶ Called when the user clicks accept on the SolventDialog
Parameters: keywords (dict) – A dictionary of Jaguar solvent model keywords
-
-
class
schrodinger.application.matsci.mswidgets.Divider(layout)¶ Bases:
PyQt5.QtWidgets.QFrameA raised divider line
-
class
schrodinger.application.matsci.mswidgets.EmbeddedSolventWidget(parent=None, solvents=None, layout=None, dielectric=True, reference=False, keywords=None, models=None, other_solvent_options={})¶ Bases:
schrodinger.application.jaguar.gui.tabs.solvation_tab.SolvationTabA master widget that contains the widgets from the Jaguar Solvation tab and is convenient to use outside the Jaguar gui environment.
-
loadSettingsFromKeywords(keywords)¶ Set the widget states based on the given keyword dictionary
Parameters: keywords (dict) – Keys are jaguar keywords, values are keyword values
-
reset()¶ Reset the widgets to their initial values
-
-
class
schrodinger.application.matsci.mswidgets.MultiStageArea(layout=None, append_button=True, append_stretch=True, stage_class=<class 'schrodinger.application.matsci.mswidgets.StageFrame'>)¶ Bases:
PyQt5.QtWidgets.QScrollAreaA scrollable frame meant to hold multiple stages. See the MatSci Desmond Multistage Simulation Workflow as one example.
-
addStage(copy_stage=None, stage_type=None, **kwargs)¶ Add a new stage
Parameters: - copy_stage (
StageFrame) – The stage to copy. The default is None, which will create a new default stage. - stage_type – What type of stage to add. Must be dealt with in the StageFrame subclass
Return type: Returns: The newly created stage
Note: All other keyword arguments are passed to the stage class
- copy_stage (
-
collapseAll()¶ Collapse all stages
-
copyStage(stage)¶ Create a copy of stage and add it directly below stage
Parameters: stage (StageFrame) – The stage to copy
-
deleteStage(stage, update=True)¶ Delete a stage
Parameters: - stage (
StageFrame) – The stage to be deleted - update (bool) – True if stage labels should be updated, False if not (use False if all stages are being deleted)
- stage (
-
expandAll()¶ Expand all stages
-
getStageIndex(stage)¶ Return which stage number this is
Parameters: stage (StageFrame) – Returns the index for this stage in the stage list Return type: int Returns: The stage number (starting at 0)
-
moveStage(current, new)¶ Move the a stage
Parameters: - current (int) – The current position of the stage
- new (int) – The desired new position of the stage
-
moveStageDown(stage)¶ Shift the given stage down one stage
Parameters: stage (StageFrame) – The stage to move down
-
moveStageUp(stage)¶ Shift the given stage up one stage
Parameters: stage (StageFrame) – The stage to move up
-
reset()¶ Reset the stage area
-
updateStageLabels(start_at=0)¶ Update stage labels - usually due to a change in stage numbering
Parameters: start_at (int) – All stages from this stage to the end of the stage list will be updated
-
-
class
schrodinger.application.matsci.mswidgets.RandomSeedWidget(layout=None, minimum=0, maximum=2147483647, default=1234, **kwargs)¶ Bases:
schrodinger.ui.qt.swidgets.SCheckBoxWithSubWidgetStandardized checkbox with spinbox to provide option to specify random seed.
-
getCommandLineFlag()¶ Return a list containing the proper random seed flag and argument specified by the state of this widget. Meant to be added onto a command list, e.g.
cmd = [EXEC, infile_path] cmd += rs_widget.getCommandLineFlag()Returns: if disabled, an empty list. Otherwise, a list containing the random seed flag followed by the string representation of the seed specified in this widget’s spinbox. Return type: empty list, orlistof twostr
-
getSeed()¶ Return the value specified in the spinbox.
Returns: seed for random number generator Return type: int
-
-
class
schrodinger.application.matsci.mswidgets.SaveDesmondFilesWidget(layout=None, **kwargs)¶ Bases:
schrodinger.ui.qt.swidgets.SCheckBoxWithSubWidgetStandardized checkbox with combo to provide options for saving intermediate Desmond job files.
-
getCommandLineArgs()¶ Return the command line flags to be used based on the widget state. Note that this expects driver classes to the
jobutils.SAVE_FLAGwith the allowed options found in l{jobutils.SAVE_FLAG_OPTS}.Returns: List of command line args to use Return type: list
-
-
class
schrodinger.application.matsci.mswidgets.SolventDialog(parent, keywords=None, **extra_args)¶ Bases:
PyQt5.QtWidgets.QDialogA Dialog that allows the user to pick a solvent model, solvent and parameters.
Emits a keywordsChanged signal when the user clicks Accept and passes a dictionary of the Jaguar keywords that reflect the selected settings.
-
accept()¶ Gather the options and emit a keyword dictionary with the keywords/values they define, then close the dialog.
-
help()¶ Show the Jaguar solvent help
-
keywordsChanged¶
-
-
class
schrodinger.application.matsci.mswidgets.StageControlButton(icon, layout, command)¶ Bases:
PyQt5.QtWidgets.QToolButtonThe QToolButtons on the right of each
StageFrame
-
class
schrodinger.application.matsci.mswidgets.StageFrame(master, layout=None, copy_stage=None, stage_type=None, icons=None)¶ Bases:
schrodinger.ui.qt.swidgets.SFrameThe base frame for a stage in a MultiStageArea
Contains a Toolbutton for a title and some Window-manager-like control buttons in the upper right corner
-
copy()¶ Create a copy of this stage
-
createControlButtons()¶ Create upper-right corner control buttons as requested by the user
-
createIconsIfNecessary()¶ Factory to create button icons if they have not been created
-
delete()¶ Delete this stage
-
icons= {}¶
-
initialize(copy_stage=None)¶ Perform any custom initialization before the widget is finalized
Parameters: copy_stage ( StageFrame) – The StageFrame this StageFrame should be a copy of. The default is None, which will create a new default stage.
-
layOut(copy_stage=None)¶ Lay out any custom widgets
Parameters: copy_stage ( StageFrame) – The StageFrame this StageFrame should be a copy of. The default is None, which will create a new default stage.
-
moveDown()¶ Move the stage down towards the bottom of the panel 1 stage
-
moveUp()¶ Move the stage up towards the top of the panel 1 stage
-
reset()¶ Resets the parameters to their default values.
-
toggleVisibility(checked=None, show=None)¶ Show or hide the stage
Parameters: - checked (bool) – Not used, but swallows the PyQt clicked signal argument so that show doesn’t get overwritten
- show (bool) – If True
-
updateLabel()¶ Set the label of the title button that toggles the stage open and closed
-
-
class
schrodinger.application.matsci.mswidgets.WheelEventFilterer¶ Bases:
PyQt5.QtCore.QObjectAn event filter that turns off wheel events for the affected widget
-
eventFilter(unused, event)¶ Filter out mouse wheel events
Parameters: - unused (unused) – unused
- event (QEvent) – The event object for the current event
Return type: bool
Returns: True if the event should be ignored (a Mouse Wheel event) or False if it should be passed to the widget
-
-
schrodinger.application.matsci.mswidgets.add_desmond_ms_logo(layout)¶ Add a Desmond D. E. Shaw logo on the left and a MatSci logo on the right
Parameters: layout (QBoxLayout) – The layout to add the logos to
-
schrodinger.application.matsci.mswidgets.center_widget_in_table_cell(table, row, column, widget)¶ Centers the widget in the cell and adds a non-selectable widget item so the cell background can’t be selected
Parameters: - table (QTableWidget) – The table that contains the cell & widget
- row (int) – The row of the cell
- column (int) – The column of the cell
- widget (QWidget) – The widget that will be placed into the cell and centered
-
schrodinger.application.matsci.mswidgets.sub_formula(formula)¶ Add <sub></sub> tags around numbers. Can be used to prettify unit cell formula.
Parameters: formula (str) – Formula to add tags around numbers Return type: str Returns: Formula with tags added
-
schrodinger.application.matsci.mswidgets.turn_off_unwanted_wheel_events(widget, combobox=True, spinbox=True, others=None)¶ Turns off the mouse wheel event for any of the specified widget types that are a child of widget
Note: The mouse wheel will still scroll an open pop-up options list for a combobox if the list opens too large for the screen. Only mouse wheel events when the combobox is closed are ignored.
Parameters: - widget (QtWidgets.QWidget) – The widget to search for child widgets
- combobox (bool) – True if comboboxes should be affected
- spinbox (bool) – True if spinboxes (int and double) should be affected
- others (list) – A list of other widget classes that should be affected