schrodinger.ui.qt.multi_combo_box module¶
- class schrodinger.ui.qt.multi_combo_box.MacMultiComboBoxStyle¶
Bases:
PyQt6.QtWidgets.QProxyStyle
- subControlRect(control, option, subControl, widget)¶
On Mac, add extra width to the popup for the checkbox.
- class schrodinger.ui.qt.multi_combo_box.MultiComboBox(parent=None, include_all_and_none=False, delimiter=', ')¶
Bases:
PyQt6.QtWidgets.QComboBox
A combo box that allows multiple items to be selected. Check marks are put next to each selected item.
- Variables
selectionChanged (
PyQt5.QtCore.pyqtSignal
) – A signal emitted whenever an item is selected or deselected.
- selectionChanged¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- popupClosed¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- __init__(parent=None, include_all_and_none=False, delimiter=', ')¶
- Parameters
parent (
PyQt5.QtWidgets.QWidget
) – The Qt parent widgetinclude_all_and_none (bool) – Whether “All” and “None” options should be added to the top of the item list.
delimiter (str) – The delimiter to use when listing all selected items
- showPopup(self)¶
- eventFilter(self, a0: QObject, a1: QEvent) bool ¶
- addOneItem(text, checkable=True)¶
Add item with the given text to the combo menu, and return the the QStandardItem object for it.
- addItems(self, texts: Iterable[str])¶
- addAllAndNone()¶
Append “All” and “None” options to the item list
- setDelimiter(delimiter)¶
Change the delimiter used when listing all selected items
- Parameters
delimiter (str) – The delimeter to use
- selectAllItems()¶
Select all listed items
- clearSelection()¶
Deselect all listed items
- setAllItemsSelected(selected=True)¶
Select or deselect all listed items
- Parameters
selected (bool) – Whether to select or deselect
- setItemSelected(item, selected=True)¶
Set the selection status of the specified item
- Parameters
item (str) – The item to modify
selected (bool) – Whether to select or deselect
- Raises
ValueError – If the specified item does not exist or if it’s “All” or “None”
- setIndexSelected(index, selected=True)¶
Set the selection status of the specified index
- Parameters
index (int) – The index of the item to modify
selected (bool) – Whether to select or deselect
- Raises
ValueError – IF the specified index corresponds to “All” or “None”
- isIndexSelected(index)¶
- Parameters
index (int) – The index of the item to check.
- Returns
Whether the item is selected/checked.
- Return type
bool
- setIndexEnabled(index, enable)¶
Set the enable state of the specified index.
- Parameters
index (int) – The index of the item to modify
enable (bool) – Whether to enable or not.
- isIndexEnabled(index)¶
Return the enabled status for the given index.
- Parameters
index (int) – The index of the item to check.
- Returns
Whether the item is enabled.
- Return type
bool
- setSelectedItems(items)¶
Select the specified items. All other items will be deselected.
- Parameters
items (list) – The list of items to select (as strings)
- Raises
ValueError – If any specified item does not exist
- setSelectedIndexes(indexes)¶
Select the specified indexes. All other items will be deselected.
- Parameters
indexes (list) – The list of indexes to select (as ints)
- getSelectedItems()¶
Return a list of all selected items
- Returns
All selected items (as strings)
- Return type
list
- items()¶
Return a list of all item texts except “All” and “None”
- Returns
All items texts except “All” and “None”
- Return type
list
- getSelectedIndexes()¶
Return a list of all selected indexes
- Returns
All selected indexes (as ints)
- Return type
list
- getSelectedStandardItems()¶
Return a list of QStandardItem objects for all items that are checked on (selected) in this combo menu.
- getAllStandardItems()¶
Return a list of QStandardItem objects for all items in this combo.
- currentText(self) str ¶
- paintEvent(event)¶
See Qt documentation for method documentation
- Note
The C++ paintEvent() and initStyleOption() methods won’t call a Python implementation of currentText() or initStyleOption(), presumably due to a bug in PyQt. To get around this, we reimplement the paintEvent() method in Python and force it to call the Python currentText() method
- clear(keep_all_and_none=True)¶
Clear all items from the combo box
- Parameters
keep_all_and_none (bool) – If True, the “All” and “None” items added via
addAllAndNone
will be kept
- removeItem(self, index: int)¶
- addAndSelectItem(text)¶
Add a new item with the specified text and select it
- Parameters
text (str) – The text of the item to add
- af2SettingsGetValue()¶
This function adds support for the settings mixin. It allows to save checked item states in case this combo box is included in a settings panel.
- Returns
List of selected rows.
- Return type
list
- af2SettingsSetValue(indexes)¶
This function adds support for the settings mixin. It allows to set combo box check states when this table is included in a settings panel.
- Parameters
indexes (list) – List of rows to check.