mantidimaging.gui.windows.spectrum_viewer.roi_table_model module#

class mantidimaging.gui.windows.spectrum_viewer.roi_table_model.TableModel[source]#

Bases: QAbstractTableModel

A subclass of QAbstractTableModel. Model for table view of ROI names and colours in Spectrum Viewer window to allow user to select which ROIs to plot.

appendNewRow(roi_name: str, roi_colour: tuple[int, int, int], visible: bool) None[source]#

Append new row to table

@param roi_name: ROI name @param roi_colour: ROI colour

clear_table() None[source]#

Clear all data in table except ‘roi’ (first element in _data list)

columnCount(*args, **kwargs) int[source]#

Return number of columns in table

@return: number of columns in table

column_data(column: int) list[str | tuple[int, int, int] | bool][source]#

Return data from selected column

@param column: column number @return: data from selected column

data(index: QModelIndex, role: ItemDataRole)[source]#

Set data in table roi name and colour - str and Tuple(int,int,int) and set background colour of colour column

@param index: index of selected row @param role: Qt.DisplayRole or Qt.BackgroundRole @return: ROI name or colour values and background colour of colour column

flags(index: QModelIndex) ItemFlags[source]#

Handle selection of table rows to disable selection of ROI colour column if index is equal to roi, item not editable

@param index: index of selected row @return: Qt.ItemIsEnabled | Qt.ItemIsSelectable

get_element(row: int, column: Literal[0]) str[source]#
get_element(row: int, column: Literal[1]) tuple[int, int, int]
get_element(row: int, column: Literal[2]) bool
headerData(section: int, orientation: Orientation, role: ItemDataRole) str | None[source]#

Set horizontal colum header names to ROI and Colour

@param section: column number @param orientation: horizontal @param role: Qt.DisplayRole @return: ROI or Colour

name_changed#

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.

remove_row(row: int) None[source]#

Remove selected row from table

@param row: row number

rename_row(row: int, new_name: str) None[source]#

Rename selected row if new name does not already exist in table and is not default ‘roi’ ROI or duplicate

@param row: row number @param new_name: new ROI name @raise ValueError: if new name already exists or is default ‘roi’ ROI

roi_names() list[str][source]#

Return list of ROI names

@return: list of ROI names

rowCount(*args, **kwargs) int[source]#

Return number of rows in table

@return: number of rows in table

row_data(row: int) list[str | tuple[int, int, int] | bool][source]#

Return data from selected row

@param row: row number @return: data from selected rows

setData(index: QModelIndex, value: str | tuple[int, int, int] | bool, role: ItemDataRole) bool[source]#

Set data in table. Called by Qt when value is changed from the GUI

@param index: index of selected row @param value: new value @param role: Qt.EditRole

set_element(row: int, column: int, value: str | tuple[int, int, int] | bool) None[source]#
update_color(row: int, new_color: tuple[int, int, int]) None[source]#
visibility_changed#

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.